ΠΠ°ΠΊΠ²Π° Π΅ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΠ΅Π΄ΠΈΡΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»Π½ΠΈ ΡΡΡΡΠ°Π²ΠΊΠΈ? ΠΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ, ΡΠ΅ ΡΠ΅Π·ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½ΠΈ, Π·Π° Π΄Π° Π·Π°ΡΠΈΡΠ°Π²Π°Ρ Π΅Π΄ΠΈΠ½ Π΄ΡΡΠ³.

ΠΠ½ΠΎΠ³ΠΎ Ρ
ΠΎΡΠ° ΡΠ΅ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°Ρ ΠΎΡ ΠΈΠ΄Π΅ΡΡΠ° Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈ OCI-ΠΎΠ±ΡΠ°Π·ΠΈ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ CI/CD, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π° ΠΎΠ±ΡΠ°Π·ΠΈ, ΡΠΎΠ³Π°Π²Π° Π½Π΅ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ /Kubernetes Π±ΡΠ»ΠΎ Π±Ρ Π²Π΅ΡΡΠΌΠ° ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅. ΠΠΎ Π½Π΅Π΄Π°Π²Π½ΠΈΡ
ΠΏΠΎΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π»ΡΠ΄Π΅ΠΉ ΠΏΡΠΎΡΡΠΎ Π΄Π°Π²Π°Π»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊ Docker-ΡΠΎΠΊΠ΅ΡΡ ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ°Π»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ docker build. , ΡΠ΅ ΡΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠΈΠ³ΡΡΠ½ΠΎ, Π²ΡΡΡΠ½ΠΎΡΡ, ΡΠΎΠ²Π° Π΅ Π΄ΠΎΡΠΈ ΠΏΠΎ-Π»ΠΎΡΠΎ ΠΎΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π½Π° Π±Π΅Π·ΠΏΠ°ΡΠΎΠ»Π½ΠΈΡ root ΠΈΠ»ΠΈ sudo.
ΠΠ°ΡΠΎΠ²Π° Ρ
ΠΎΡΠ°ΡΠ° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°Ρ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°Ρ Buildah Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΡΡΠ·Π΄Π°Π΄ΠΎΡ
ΠΌΠ΅ ΠΊΠ°ΠΊ, ΡΠΏΠΎΡΠ΅Π΄ Π½Π°Ρ, Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ Buildah Π²ΡΡΡΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈ ΡΠΌΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π»ΠΈ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π·ΠΈ Π½Π° . ΠΠ΅ΠΊΠ° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ...
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ°
Π’Π΅Π·ΠΈ ΠΎΠ±ΡΠ°Π·ΠΈ ΡΠ° ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΎΡ Dockerfiles, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Buildah Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ° .
Π’ΡΠΊ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ .
# stable/Dockerfile
#
# Build a Buildah container image from the latest
# stable version of Buildah on the Fedoras Updates System.
# https://bodhi.fedoraproject.org/updates/?search=buildah
# This image can be used to create a secured container
# that runs safely with privileges within the container.
#
FROM fedora:latest
# Don't include container-selinux and remove
# directories used by dnf that are just taking
# up space.
RUN yum -y install buildah fuse-overlayfs --exclude container-selinux; rm -rf /var/cache /var/log/dnf* /var/log/yum.*
# Adjust storage.conf to enable Fuse storage.
RUN sed -i -e 's|^#mount_program|mount_program|g' -e '/additionalimage.*/a "/var/lib/shared",' /etc/containers/storage.conf
ΠΠΌΠ΅ΡΡΠΎ OverlayFS, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π° Π½Π° Π½ΠΈΠ²ΠΎ Ρ ΠΎΡΡ ΡΠ΄ΡΠΎ, Π½ΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° , ΡΡΠΉ ΠΊΠ°ΡΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° OverlayFS ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ Ρ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΠΏΡΠ°Π²Π° SYS_ADMIN ΡΡΠ΅Π· Linux capabilities. Π Π½ΠΈΠ΅ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ Π½Π°ΡΠΈΡΠ΅ Buildah-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π½Π° Π½ΠΈΠ²ΠΎ root. Fuse-overlay ΡΠ°Π±ΠΎΡΠΈ Π΄ΠΎΡΡΠ° Π±ΡΡΠ·ΠΎ ΠΈ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΡ ΠΎΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ VFS. ΠΠΌΠ΅ΠΉΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Buildah-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Fuse, ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ /dev/fuse.
podman run --device /dev/fuse quay.io/buildahctr ...
RUN mkdir -p /var/lib/shared/overlay-images /var/lib/shared/overlay-layers; touch /var/lib/shared/overlay-images/images.lock; touch /var/lib/shared/overlay-layers/layers.lock
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π·Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°. ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π½Π° ΠΎΠ±ΡΠ°Π·ΠΈ Ρ ΡΠ°ΠΌΠΎ-Π·Π°Π΄Π°Π²Π°Π½Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ overlay storage area Π½Π° Π΅Π΄Π½Π° ΠΌΠ°ΡΠΈΠ½Π° ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° Ρ ΠΏΠΎΠ΄ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΠ΅ Π½Π° Π΄ΡΡΠ³Π° ΠΌΠ°ΡΠΈΠ½Π° Ρ NFS ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΎΠ±ΡΠ°Π·ΠΈΡΠ΅ ΠΎΡ Π½Π΅Π³ΠΎ Π±Π΅Π· ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ ΡΡΠ΅Π· pull. Π’ΠΎΠ²Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ²ΡΡΠΆΠ΅ΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° ΠΎΠ±ΡΠ°Π·ΠΈ ΠΎΡ Ρ ΠΎΡΡΠ° ΠΊΠ°ΡΠΎ ΡΠΎΠΌ ΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π²ΡΡΡΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
# Set up environment variables to note that this is
# not starting with user namespace and default to
# isolate the filesystem with chroot.
ENV _BUILDAH_STARTED_IN_USERNS="" BUILDAH_ISOLATION=chroot
Π Π½Π°ΠΊΡΠ°Ρ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° BUILDAH_ISOLATION, ΠΊΠ°Π·Π²Π°ΠΌΠ΅, ΡΠ΅ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½ΡΡΡΡ Π½Π° Buildah ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° Ρ ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ chroot. ΠΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π²Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈΠΌ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠ° Buildah Π΄Π° ΡΡΠ·Π΄Π°Π²Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠΌΠ΅Π½Π½ΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°, Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ SYS_ADMIN, Π° Π·Π° ΡΠΎΠ²Π° ΡΠ΅ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΎΡΡΠ»Π°Π±ΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π½Π° SELinux ΠΈ SECCOMP Π·Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈ Π½Π° Π½Π°ΡΠ°ΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π΄Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΠΌΠ΅ ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ Buildah Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π°ΡΠ° ΠΏΠΎ-Π³ΠΎΡΠ΅ ΡΡ Π΅ΠΌΠ° Π½Π° ΠΎΠ±ΡΠ°Π·Π° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π½Π° Buildah ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π³ΡΠ²ΠΊΠ°Π²ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° Π½Π°ΡΠΈΠ½ΠΈΡΠ΅ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΊΠΈΠ²Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ.
Π‘ΠΊΠΎΡΠΎΡΡ ΡΡΠ΅ΡΡ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ.
ΠΠΎΠΌΠΏΡΡΡΡΠ½Π°ΡΠ° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° ΠΈ Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° Π·Π°ΡΠΈΡΠ° ΠΎΠΊΠΎΠ»ΠΎ Π½Π΅Π³ΠΎ. Π’ΠΎΠ²Π° ΡΠ²ΡΡΠ΄Π΅Π½ΠΈΠ΅ Π²Π°ΠΆΠΈ ΠΈ ΠΏΡΠΈ ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΠΎ-Π΄ΠΎΠ»Ρ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΠΈΡΠ΅ Π½Π° ΡΠ°ΠΊΡΠ² ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡ.
Π Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½ΠΈΡΡ ΠΏΠΎ-Π³ΠΎΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅Π½ ΠΎΠ±ΡΠ°Π· ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΡΠ²ΠΎΠ΅ΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π² /var/lib/containers. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, ΡΡΡΠ±Π²Π° Π΄Π° ΠΌΠΎΠ½ΡΠΈΡΠ°ΠΌΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π² ΡΠ°Π·ΠΈ ΠΏΠ°ΠΏΠΊΠ°, Π° Π½Π°ΡΠΈΠ½ΡΡ, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ, ΡΠ΅ ΠΎΠΊΠ°Π·Π²Π° Π³ΠΎΠ»ΡΠΌΠΎ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π²ΡΡΡ Ρ ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π·ΠΈ.
ΠΠ΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΡΡΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠ°.
ΠΠ°ΡΠΈΠ°Π½Ρ 1. ΠΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ, Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° ΠΏΠ°ΠΏΠΊΠ° Π·Π° containers/image ΠΈ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΡΡΠ΅Π· volume-mount. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° ΠΏΠ°ΠΏΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈ Π² ΡΠ°ΠΌΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ° /build:
# mkdir /var/lib/containers1
# podman run -v ./build:/build:z -v /var/lib/containers1:/var/lib/containers:Z quay.io/buildah/stable
buildah -t image1 bud /build
# podman run -v /var/lib/containers1:/var/lib/containers:Z quay.io/buildah/stable buildah push image1 registry.company.com/myuser
# rm -rf /var/lib/containers1
Π‘ΠΈΠ³ΡΡΠ½ΠΎΡΡ. Buildah, ΡΠ°Π±ΠΎΡΠ΅Ρ Π² ΡΠ°ΠΊΡΠ² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΈΠΌΠ° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ: Π½Π΅ ΠΌΡ ΡΠ΅ Π΄Π°Π²Π°Ρ Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ root-ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ΡΡΠ΅Π· capabilities, ΠΈ ΠΊΡΠΌ Π½Π΅Π³ΠΎ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°Ρ Π²ΡΠΈΡΠΊΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° SECOMP ΠΈ SELinux. Π’Π°ΠΊΡΠ² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΄ΠΎΡΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° Ρ ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ Π½Π° User Namespace, Π΄ΠΎΠ±Π°Π²ΡΠΉΠΊΠΈ ΠΎΠΏΡΠΈΡ ΠΊΠ°ΡΠΎ βuidmap 0:100000:10000.
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ. ΠΠ±Π°ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΡΡΠΊ Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π°, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΠΎΠ±ΡΠ°Π·ΠΈ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΈ Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ°Ρ Π½Π° Ρ ΠΎΡΡΠ°, ΠΈ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠΎ. ΠΠ°Π²ΡΡΡΠ²Π°ΠΉΠΊΠΈ ΡΠ°Π±ΠΎΡΠ°, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ Buildah ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ° ΠΎΠ±ΡΠ°Π·Π° Π² ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΈ Π΄Π° ΡΠ½ΠΈΡΠΎΠΆΠ°Π²Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° Ρ ΠΎΡΡΠ°. ΠΠΎΠ³Π°ΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈΡΡ ΠΎΠ±ΡΠ°Π· Π±ΡΠ΄Π΅ ΡΡΠ±ΡΠ°Π½ ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ ΠΏΡΡ, ΡΠΎΠΉ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΡΠ΅Π³Π»Π΅Π½ ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΎΡ ΡΠ΅Π³ΠΈΡΡΡΠ°, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½Π° Ρ ΠΎΡΡΠ° Π΄ΠΎ ΡΠΎΠ³Π°Π²Π° Π²Π΅ΡΠ΅ Π½ΡΠΌΠ° Π΄Π° ΠΎΡΡΠ°Π½Π΅ Π½ΠΈΡΠΎ.
ΠΠ°ΡΠΈΠ°Π½Ρ 2. ΠΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° Docker, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΌΠΎΠ½ΡΠΈΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° Ρ ΠΎΡΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
# podman run -v ./build:/build:z -v /var/lib/containers:/var/lib/containers --security-opt label:disabled quay.io/buildah/stable buildah -t image2 bud /build
# podman run -v /var/lib/containers:/var/lib/containers --security-opt label:disabled quay.io/buildah/stable buildah push image2 registry.company.com/myuser
Π‘ΠΈΠ³ΡΡΠ½ΠΎΡΡ. Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-ΠΌΠ°Π»ΠΊΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΈΡΡ Π½Π°ΡΠΈΠ½ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ ΡΡΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° Ρ ΠΎΡΡΠ° ΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ Π½Π° Podman ΠΈΠ»ΠΈ CRI-O Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½ ΠΎΠ±ΡΠ°Π·. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΡΠ΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ° ΡΠ°Π·Π³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° SELinux, Π·Π° Π΄Π° ΠΌΠΎΠ³Π°Ρ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Π² Buildah-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π΄Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π°Ρ Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° Ρ ΠΎΡΡΠ°. ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ΅ ΡΠΎΠ·ΠΈ Π²Π°ΡΠΈΠ°Π½Ρ Π²ΡΠ΅ ΠΏΠ°ΠΊ Π΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΡ ΠΎΡ Docker ΡΠΎΠΊΠ΅ΡΠ°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ Π΅ Π±Π»ΠΎΠΊΠΈΡΠ°Π½ ΠΎΡ ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ Π΄Π° Π²Π·Π΅ΠΌΠ΅ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π½Π° Ρ ΠΎΡΡΠ°.
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ. Π’ΡΠΊ ΡΡ Π΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΎ. ΠΠΊΠΎ Podman ΠΈΠ»ΠΈ CRI-O Π²Π΅ΡΠ΅ ΡΠ° ΡΡΠΏΠ΅Π»ΠΈ Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΡ Π½ΡΠΆΠ½ΠΈΡ ΠΎΠ±ΡΠ°Π· Π½Π° Ρ ΠΎΡΡΠ°, ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π² Buildah Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π½ΡΠΌΠ° Π΄Π° ΠΌΡ ΡΠ΅ Π½Π°Π»Π°Π³Π° Π΄Π° Π³ΠΎ ΠΈΠ·ΡΠ΅Π³Π»Ρ ΠΎΡΠ½ΠΎΠ²ΠΎ, Π° ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΠ΅ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½ΠΈΡ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΡΠΎΠ·ΠΈ ΠΎΠ±ΡΠ°Π· ΡΡΡΠΎ ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π²Π·Π΅ΠΌΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΠΎ ΠΎΡ ΠΊΠ΅ΡΠ°.
ΠΠ°ΡΠΈΠ°Π½Ρ 3. Π‘ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΡΠΎΠ·ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Π΅ Π΄Π° ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΎΠ±ΡΠ°Π·Π° Π² Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΎΠ±ΡΠ° ΠΏΠ°ΠΏΠΊΠ° Π·Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π·ΠΈ.
# mkdir /var/lib/project3
# podman run --security-opt label_level=s0:C100, C200 -v ./build:/build:z
-v /var/lib/project3:/var/lib/containers:Z quay.io/buildah/stable buildah -t image3 bud /build
# podman run --security-opt label_level=s0:C100, C200
-v /var/lib/project3:/var/lib/containers quay.io/buildah/stable buildah push image3 registry.company.com/myuser
Π ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π΅ ΠΈΠ·ΡΡΠΈΠ²Π°ΠΌΠ΅ ΠΏΠ°ΠΏΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° (\/var\/lib\/project3) ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΈΡΡΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½ΠΈΡ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°ΡΠ° Π½Π° ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ.
Π‘ΠΈΠ³ΡΡΠ½ΠΎΡΡ. ΠΠ΅ΡΠΎ ΡΡΠ΅Π΄Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π°ΡΠΈΠ°Π½ΡΠΈΡΠ΅ 1 ΠΈ 2. ΠΡ Π΅Π΄Π½Π° ΡΡΡΠ°Π½Π°, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Π½ΡΠΌΠ°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° Ρ ΠΎΡΡΠ° ΠΈ, ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ, Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ Π½Π΅ΡΠΎ Π»ΠΎΡΠΎ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° ΠΎΠ±ΡΠ°Π·ΠΈΡΠ΅ Podman\/CRI-O. ΠΡ Π΄ΡΡΠ³Π° ΡΡΡΠ°Π½Π°, Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΡΠ²ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²Π»ΠΈΡΠ΅ Π½Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π΄ΡΡΠ³ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ.
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ. Π’ΡΠΊ ΡΡ Π΅ ΠΏΠΎ-Π»ΠΎΡΠ°, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΎΠ±Ρ ΠΊΠ΅Ρ Π½Π° Π½ΠΈΠ²ΠΎ Ρ ΠΎΡΡ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΎΠ±ΡΠ°Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ Π²Π΅ΡΠ΅ ΡΠ° ΠΈΠ·ΡΠ΅Π³Π»Π΅Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Podman\/CRI-O. ΠΠ±Π°ΡΠ΅ ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Buildah ΠΈΠ·ΡΠ΅Π³Π»ΠΈ ΠΎΠ±ΡΠ°Π·Π°, ΡΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²ΡΠ² Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½ΠΈΡ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°
Π£ ΠΈΠΌΠ° Π½Π΅ΡΠΎ ΡΡΡΠ°Ρ ΠΎΡΠ½ΠΎ, Π½Π°ΡΠ΅ΡΠ΅Π½ΠΎ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° (additional stores), Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΠΈ ΡΠ±ΠΎΡΠΊΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈΡΠ΅ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π²ΡΠ½ΡΠ½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌ read-only ΠΎΠ²Π΅ΡΠ»Π΅ΠΉ. ΠΡΡΡΠ½ΠΎΡΡ, Π² ΡΠ°ΠΉΠ»Π° storage.conf ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ Π΅Π΄Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° βΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅β, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π°, ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈΡΡ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π» Π΄Π° ΡΡΡΡΠΈ Π½ΡΠΆΠ½ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΡΡ . ΠΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ, ΡΠΎΠΉ ΡΠ΅ ΠΈΠ·ΡΠ΅Π³Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΎΡ ΡΠ΅Π³ΠΈΡΡΡΡΠ° ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ Π½Π΅ Π³ΠΎ Π½Π°ΠΌΠ΅ΡΠΈ Π² Π½ΠΈΡΠΎ Π΅Π΄Π½ΠΎ ΠΎΡ ΡΠ΅Π·ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°. ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈΡΡ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π» ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°ΠΏΠΈΡΠ²Π° ΡΠ°ΠΌΠΎ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π·Π° Π·Π°ΠΏΠΈΡ...
ΠΠΊΠΎ ΡΠ΅ Π²ΡΡΠ½Π΅ΡΠ΅ Π½Π°Π³ΠΎΡΠ΅ ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ Dockerfile, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π·Π° ΡΠ±ΠΎΡΠΊΠ° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ quay.io/buildah/stable, ΡΠ°ΠΌ ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅:
# Adjust storage.conf to enable Fuse storage.
RUN sed -i -e 's|^#mount_program|mount_program|g' -e '/additionalimage.*/a "/var/lib/shared",' /etc/containers/storage.conf
RUN mkdir -p /var/lib/shared/overlay-images /var/lib/shared/overlay-layers; touch /var/lib/shared/overlay-images/images.lock; touch /var/lib/shared/overlay-layers/layers.lock
Π ΠΏΡΡΠ²ΠΈΡ ΡΠ΅Π΄ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°ΠΌΠ΅ /etc/containers/storage.conf Π²ΡΡΡΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈΡ ΠΎΠ±ΡΠ°Π·, ΠΊΠ°ΡΠΎ ΠΊΠ°Π·Π²Π°ΠΌΠ΅ Π½Π° storage-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° βadditionalimagestoresβ Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ° /var/lib/shared. Π Π² ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ ΡΠ΅Π΄ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΎΠ±ΡΠ° ΠΏΠ°ΠΏΠΊΠ° ΠΈ Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ lock-ΡΠ°ΠΉΠ»Π°, Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΠΌ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° containers/storage. ΠΡΡΡΠ½ΠΎΡΡ, ΠΏΡΠΎΡΡΠΎ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΏΡΠ°Π·Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΠΊΠΎ ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΠ΅ containers/storage Π½Π° Π½ΠΈΠ²ΠΎ Π½Π°Π΄ ΡΠ°Π·ΠΈ ΠΏΠ°ΠΏΠΊΠ°, Buildah ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
Π‘Π΅Π³Π° Π΄Π° ΡΠ΅ Π²ΡΡΠ½Π΅ΠΌ ΠΊΡΠΌ ΡΠ°Π·Π³Π»Π΅Π΄Π°Π½ΠΈΡ ΠΏΠΎ-Π³ΠΎΡΠ΅ ΠΠ°ΡΠΈΠ°Π½Ρ 2, ΠΊΠΎΠ³Π°ΡΠΎ Buildah-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ΡΠ΅ ΠΈ ΠΏΠΈΡΠ΅ Π² containers/store Π½Π° Ρ ΠΎΡΡΠΎΠ²Π΅ΡΠ΅ ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΠΈΠΌΠ° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° Π½ΠΈΠ²ΠΎ Podman/CRI-O, Π½ΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°ΠΏΠΈΡΠ²Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°ΡΠ°. Π ΡΠ΅Π³Π°, Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΈ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΎΡΠΎ ΠΎΡ Π΄Π²Π°ΡΠ° ΡΠ²ΡΡΠ°.
# mkdir /var/lib/containers4
# podman run -v ./build:/build:z -v /var/lib/containers/storage:/var/lib/shared:ro -v /var/lib/containers4:/var/lib/containers:Z quay.io/buildah/stable
buildah -t image4 bud /build
# podman run -v /var/lib/containers/storage:/var/lib/shared:ro
-v >/var/lib/containers4:/var/lib/containers:Z quay.io/buildah/stable buildah push image4 registry.company.com/myuser
# rm -rf /var/lib/continers4
ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ΅ /var/lib/containers/storage Π½Π° Ρ ΠΎΡΡΠ° Π΅ ΠΌΠΎΠ½ΡΠΈΡΠ°Π½ΠΎ Π² /var/lib/shared Π²ΡΡΡΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π² ΡΠ΅ΠΆΠΈΠΌ read-only. ΠΠ°ΡΠΎΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π²ΡΡΡΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, Buildah ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ Π²Π΅ΡΠ΅ ΡΠ° Π±ΠΈΠ»ΠΈ ΠΈΠ·ΡΠ΅Π³Π»Π΅Π½ΠΈ ΡΡΠ΅Π· Podman/CRI-O (ΠΏΡΠΈΠ²Π΅Ρ, Π±ΡΡΠ·ΠΈΠ½Π°), Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°ΠΏΠΈΡΠ²Π° ΡΠ°ΠΌΠΎ Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎΡΠΎ ΡΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ (ΠΏΡΠΈΠ²Π΅Ρ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ). Π‘ΡΡΠΎ ΡΠ°ΠΊΠ°, ΠΎΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ΅ ΡΠΎΠ²Π° ΡΠ΅ ΠΏΡΠ°Π²ΠΈ Π±Π΅Π· ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° SELinux Π·Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
ΠΠ°ΠΆΠ½ΠΎ ΡΡΠΎΡΠ½Π΅Π½ΠΈΠ΅
ΠΠΎ Π½ΠΈΠΊΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΡΡΠΈΠ²Π°Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. Π ΠΏΡΠΎΡΠΈΠ²Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ Buildah-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΠΈΠ½Π΅.
Π ΡΠΎΠ²Π° Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΡΠ° Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°
ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π½Π΅ ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Ρ ΡΠ°ΠΌΠΎ Π΄ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠΎ-Π³ΠΎΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈ ΠΎΠ±ΡΠ°Π·ΠΈ Π² ΠΎΠ±ΡΠ° ΠΌΡΠ΅ΠΆΠΎΠ²Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π½Π΅Π³ΠΎ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Buildah. ΠΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΠ΅ ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°ΠΌΠ΅ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ°Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π°ΡΠ°ΡΠ° CI/CD ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅Π΄ΠΎΠ²Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈ ΠΎΠ±ΡΠ°Π·ΠΈ. ΠΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΠ°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΠΎΠ±ΡΠ°Π·ΠΈ Π½Π° Π΅Π΄ΠΈΠ½ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ Ρ ΠΎΡΡ, Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ (NFS, Gluster, Ceph, ISCSI, S3β¦), ΠΎΡΠ²Π°ΡΡΠΌΠ΅ ΠΎΠ±Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠΎΠ²Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° Π²ΡΠΈΡΠΊΠΈ Π½ΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅ Π½Π° Buildah ΠΈΠ»ΠΈ Kubernetes.
Π‘Π΅Π³Π° Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄Π° ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΠ΅ ΡΠΎΠ²Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Buildah Π½Π° /var/lib/shared ΠΈ Π²ΡΠΈΡΠΊΠΎ β ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Buildah Π²Π΅ΡΠ΅ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΡ ΠΎΠ±ΡΠ°Π·ΠΈ ΡΡΠ΅Π· pull. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΈΠ·Π²Π°ΠΆΠ΄Π°ΠΌΠ΅ ΡΠ°Π·Π°ΡΠ° Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠΏΡΠ»Π²Π°Π½Π΅ ΠΈ Π²Π΅Π΄Π½Π°Π³Π° ΡΠΌΠ΅ Π³ΠΎΡΠΎΠ²ΠΈ Π΄Π° ΡΠ°Π·Π³ΡΡΡΠ°ΠΌΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ.
Π, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Kubernetes ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°, Π·Π° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π½Π°Π²ΡΡΠΊΡΠ΄Π΅ Π±Π΅Π· ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ Π½Π° ΠΎΠ±ΡΠ°Π·ΠΈ ΡΡΠ΅Π· pull. ΠΠ°Π΄ ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅, ΡΠ΅Π³ΠΈΡΡΡΡΡΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅, ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ push-Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΠΊΠ°ΡΠ²Π°Π½Π΅ Π½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΎΠ±ΡΠ°Π·, ΠΌΠΎΠΆΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠΈ ΡΠΎΠ·ΠΈ ΠΎΠ±ΡΠ°Π· Π² ΠΎΠ±ΡΠΎΡΠΎ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ ΡΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π·Π° Π²ΡΠΈΡΠΊΠΈ Π½ΠΎΠ΄ΠΈ.
Π Π°Π·ΠΌΠ΅ΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π·ΠΈ ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π΄ΠΎΡΡΠΈΠ³Π°Ρ Π΄ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠΈ. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΊΠΈΠ²Π° ΠΎΠ±ΡΠ°Π·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅ ΠΈ ΠΏΡΠ°Π²ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΈΠ³Π½ΠΎΠ²Π΅Π½ΠΎ.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ°Π±ΠΎΡΠΈΠΌ ΠΏΠΎ Π½ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΡ Π·Π° overlay volume mounts, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΡΠΊΠΎΡΠΈ ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΠΎΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Buildah Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π² ΡΡΠ΅Π΄Π° Kubernetes/CRI-O, Podman ΠΈΠ»ΠΈ Π΄ΠΎΡΠΈ Π² Docker Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠ΅Π°Π»ΠΈΡΡΠΈΡΠ½ΠΎ, ΠΎΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π΅ ΠΏΡΠΎΡΡΠΎ ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-ΡΠΈΠ³ΡΡΠ½ΠΎ ΠΎΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° docker.socket. ΠΠ½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡ ΠΌΠ΅ Π³ΡΠ²ΠΊΠ°Π²ΠΎΡΡΡΠ° ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΎΠ±ΡΠ°Π·ΠΈΡΠ΅ ΠΈ ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°ΡΠΈΠ½ΠΈ Π·Π° ΠΎΠΏΡΠΈΠΌΠ°Π»Π΅Π½ Π±Π°Π»Π°Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ.
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ ΠΈΠ»ΠΈ Π΄ΠΎΡΠΈ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΡΠ΅ΠΌΠ°Ρ
Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ΡΠΎ Π½Π° ΠΎΠ±ΡΠ°Π·ΠΈ Π½Π° Π½ΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
