เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบฅเปˆเบ™ Buildah เบžเบฒเบเปƒเบ™เบ–เบฑเบ‡

เบ„เบงเบฒเบกเบ‡เบฒเบกเบ‚เบญเบ‡เบเบฒเบ™ decoupling container runtime เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเป€เบ„เบทเปˆเบญเบ‡เบกเบทเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเปเบกเปˆเบ™เบซเบเบฑเบ‡? เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เป€เบ„เบทเปˆเบญเบ‡เบกเบทเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเบ›เบปเบเบ›เป‰เบญเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™.

เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบฅเปˆเบ™ Buildah เบžเบฒเบเปƒเบ™เบ–เบฑเบ‡

เบ›เบฐโ€‹เบŠเบฒโ€‹เบŠเบปเบ™โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบซเบผเบฒเบโ€‹เปเบกเปˆเบ™โ€‹เบ”เบถเบ‡โ€‹เบ”เบนเบ”โ€‹เบ„เบงเบฒเบกโ€‹เบ„เบดเบ”โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบเปเปˆโ€‹เบชเป‰เบฒเบ‡โ€‹เบฎเบนเบšโ€‹เบžเบฒเบš OCI containerized เบžเบฒเบโ€‹เปƒเบ™ Kubernetes เบซเบผเบทเบฅเบฐเบšเบปเบšเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™. เปƒเบซเป‰เป€เบงเบปเป‰เบฒเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบต CI / CD เบ—เบตเปˆเป€เบเบฑเบšเบเปเบฒเบฎเบนเบšเบžเบฒเบšเบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™: RedHat OpenShift/ Kubernetes เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบซเบผเบฒเบเปƒเบ™เปเบ‡เปˆเบ‚เบญเบ‡เบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡. เบˆเบปเบ™เบเปˆเบงเบฒเบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰, เบ„เบปเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเบžเบฝเบ‡เปเบ•เปˆเปƒเบซเป‰ containers เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ socket Docker เปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบชเป‰เบฒเบ‡ docker. เบซเบผเบฒเบเบ›เบตเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบ›เบญเบ”เป„เบžเบซเบผเบฒเบ, เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบกเบฑเบ™เบเปเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบเบงเปˆเบฒเบเบฒเบ™เปƒเบซเป‰ root เบ—เบตเปˆเบšเปเปˆเบกเบตเบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เบซเบผเบท sudo.

เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบ„เบปเบ™เบžเบฐเบเบฒเบเบฒเบกเปเบฅเปˆเบ™ Buildah เบขเบนเปˆเปƒเบ™เบ–เบฑเบ‡. เปƒเบ™เบชเบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡ เบ•เบปเบงเบขเปˆเบฒเบ‡ เบงเบดเบ—เบตเบเบฒเบ™, เปƒเบ™เบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เปเบกเปˆเบ™เบ”เบตเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ Buildah เบžเบฒเบเปƒเบ™เบšเบฑเบ™เบˆเบธ, เปเบฅเบฐเบˆเบฑเบ”เบžเบตเบกเบกเบฒเบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™ quay.io/buildah. เบกเบฒเป€เบฅเบตเปˆเบกเบเบฑเบ™เป€เบฅเบตเบ...

เบเบฒเบ™เบ›เบฑเบš

เบฎเบนเบšเบžเบฒเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบˆเบฒเบ Dockerfiles, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบžเบปเบšเป„เบ”เป‰เปƒเบ™ Buildah repository เปƒเบ™เป‚เบŸเบ™เป€เบ”เบต buildahimage.
เปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบšเบดเปˆเบ‡ เบชเบฐเบšเบฑเบšเบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เบ‚เบญเบ‡ Dockerfile.

# 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, เบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบšเป‚เบฎเบ” Linux kernel, เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เป‚เบ„เบ‡เบเบฒเบ™เบžเบฒเบเปƒเบ™เบšเบฑเบ™เบˆเบธ. fuse-overlay, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ OverlayFS เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เบฑเป‰เบ‡เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบซเป‰เบกเบฑเบ™ SYS_ADMIN เบญเบฐเบ™เบธเบเบฒเบ”เป‚เบ”เบเปƒเบŠเป‰เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ” Linux. เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบšเบฑเบ™เบˆเบธ Buildah เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”เบฎเบฒเบ. 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

เบ•เปเปˆเป„เบ›, เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบก. เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต / เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ‚เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบฎเป‰เบฒเบ™เบฎเบนเบšเบžเบฒเบšเบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก. เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบžเบทเป‰เบ™เบ—เบตเปˆเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบŠเป‰เบญเบ™เบเบฑเบ™เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบซเบ™เบถเปˆเบ‡, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เปƒเบŠเป‰ NFS เป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบญเบทเปˆเบ™เปเบฅเบฐเปƒเบŠเป‰เบฎเบนเบšเบžเบฒเบšเบˆเบฒเบเบกเบฑเบ™เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เบ”เบฒเบงเป‚เบซเบฅเบ”เบœเปˆเบฒเบ™เบ”เบถเบ‡. เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เป€เบžเบทเปˆเบญเปƒเบซเป‰เบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบฎเบนเบšเบžเบฒเบšเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบˆเบฒเบเป€เบˆเบปเป‰เบฒเบžเบฒเบšเป€เบ›เบฑเบ™เบ›เบฐเบฅเบดเบกเบฒเบ™เปเบฅเบฐเปƒเบŠเป‰เบกเบฑเบ™เบžเบฒเบเปƒเบ™เบ–เบฑเบ‡.

# 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 container เปƒเบซเป‰เปเบฅเปˆเบ™เบ”เป‰เบงเบ chroot isolation เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ—เบตเปˆเบ™เบตเป‰เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบต insulation เป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบšเบฑเบ™เบˆเบธ. เป€เบžเบทเปˆเบญเปƒเบซเป‰ Buildah เบชเป‰เบฒเบ‡เบเปˆเบญเบ‡เบšเบฑเบ™เบˆเบธเบ—เบตเปˆเปเบเบเบ”เป‰เบงเบ namespace เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เบ•เป‰เบญเบ‡เบกเบตเบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ” SYS_ADMIN, เป€เบŠเบดเปˆเบ‡เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบœเปˆเบญเบ™เบ„เบฒเบเบเบปเบ”เบฅเบฐเบšเบฝเบš SELinux เปเบฅเบฐ SECOMP เบ‚เบญเบ‡เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต, เป€เบŠเบดเปˆเบ‡เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบกเบเบฑเบšเบ„เบงเบฒเบกเบกเบฑเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบˆเบฒเบเบ–เบฑเบ‡เบ—เบตเปˆเบ›เบญเบ”เป„เบž.

เปเบฅเปˆเบ™ Buildah เบžเบฒเบเปƒเบ™เบ–เบฑเบ‡

เปเบœเบ™เบงเบฒเบ”เบฎเบนเบšเบžเบฒเบšเบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต Buildah เบ—เบตเปˆเบชเบปเบ™เบ—เบฐเบ™เบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบ™เบตเป‰เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เบงเบดเบ—เบตเบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเบ–เบฑเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰.

เบ„เบงเบฒเบกเป„เบงเบ—เบฝเบšเบเบฑเบšเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž

เบ„เบงเบฒเบกโ€‹เบ›เบญเบ”โ€‹เป„เบžโ€‹เบ‚เบญเบ‡โ€‹เบ„เบญเบกโ€‹เบžเบดเบงโ€‹เป€เบ•เบตโ€‹เปเบกเปˆเบ™โ€‹เบชเบฐโ€‹เป€เบซเบกเบตโ€‹เป„เบ›โ€‹เบ›เบฐโ€‹เบ™เบตโ€‹เบ›เบฐโ€‹เบ™เบญเบกโ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบ„เบงเบฒเบกโ€‹เป„เบงโ€‹เบ‚เบญเบ‡โ€‹เบ‚เบฐโ€‹เบšเบงเบ™โ€‹เบเบฒเบ™โ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบ›เบปเบโ€‹เบ›เบฑเบโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹เบซเบผเบฒเบโ€‹เบ›เบฒเบ™โ€‹เปƒเบ”โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบซเบธเป‰เบกโ€‹เบซเปเปˆโ€‹เบกเบฑเบ™โ€‹. เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ›เบฐเบเบญเบšเบžเบฒเบŠเบฐเบ™เบฐ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ™เบตเบ›เบฐเบ™เบญเบกเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.

เบฎเบนเบšเบžเบฒเบšเบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบตเบ—เบตเปˆเบชเบปเบ™เบ—เบฐเบ™เบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบ™เบตเป‰เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เบญเบ‡เบกเบฑเบ™เบขเบนเปˆเปƒเบ™ /var/lib/containers. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰ mount เป€เบ™เบทเป‰เบญเปƒเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป‚เบŸเบ™เป€เบ”เบตเบ™เบตเป‰, เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เบ™เบตเป‰เบˆเบฐเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเบ•เปเปˆเบ„เบงเบฒเบกเป„เบงเบ‚เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบšเบžเบฒเบŠเบฐเบ™เบฐ.

เปƒเบซเป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบชเบฒเบกเบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

Option 1 เบ–เป‰เบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบชเบนเบ‡เบชเบธเบ”, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เป‚เบŸเป€เบ”เบตเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡เบชเปเบฒเบฅเบฑเบšเบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต / เบฎเบนเบšเบžเบฒเบšเปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบกเบฑเบ™เบเบฑเบšเบ–เบฑเบ‡เบœเปˆเบฒเบ™ volume-mount. เปเบฅเบฐเบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบงเบฒเบ‡ directory context เปƒเบ™ container เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡, เปƒเบ™ /build folder:

# 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 เบ—เบตเปˆเปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™เบ–เบฑเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบกเบตเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบชเบนเบ‡เบชเบธเบ”: เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบกเบญเบšเปƒเบซเป‰เบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”เปƒเบ”เป†เบ—เบตเปˆเปƒเบŠเป‰เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”, เปเบฅเบฐเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ” SECOMP เปเบฅเบฐ SELinux เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เปเบฒเปƒเบŠเป‰เบเบฑเบšเบกเบฑเบ™. เบ–เบฑเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ”เป‰เบงเบเบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบง User Namespace เป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบŠเบฑเปˆเบ™ โ€”uidmap 0: 100000:10000.

เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”. เปเบ•เปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰เปเบกเปˆเบ™เบซเบ™เป‰เบญเบ, เป€เบžเบฒเบฐเบงเปˆเบฒเบฎเบนเบšเบžเบฒเบšเปƒเบ”เป†เบˆเบฒเบเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบšเบฑเบ™เบˆเบธเบˆเบฐเบ–เบทเบเบ„เบฑเบ”เบฅเบญเบเป„เบ›เบซเบฒเป€เบˆเบปเป‰เบฒเบžเบฒเบšเบ—เบธเบเป†เบ„เบฑเป‰เบ‡, เปเบฅเบฐเบเบฒเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเป€เบฅเบตเบ. เป€เบกเบทเปˆเบญเบชเปเบฒเป€เบฅเบฑเบ”เบงเบฝเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบกเบฑเบ™, เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต Buildah เบ•เป‰เบญเบ‡เบชเบปเปˆเบ‡เบฎเบนเบšเบžเบฒเบšเป„เบ›เบเบฑเบ‡เบ—เบฐเบšเบฝเบ™เปเบฅเบฐเบ—เปเบฒเบฅเบฒเบเป€เบ™เบทเป‰เบญเบซเบฒเปƒเบ™เป€เบˆเบปเป‰เบฒเบžเบฒเบš. เปƒเบ™เบ„เบฑเป‰เบ‡เบ•เปเปˆเป„เบ›เบเบฒเบ™เบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบšเบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต, เบกเบฑเบ™เบˆเบฐเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ”เบฒเบงเป‚เบซเบผเบ”เบˆเบฒเบเบฅเบตเบˆเบดเบ”เบŠเบตเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เป€เบžเบฒเบฐเบงเปˆเบฒเปƒเบ™เป€เบงเบฅเบฒเบ™เบฑเป‰เบ™เบˆเบฐเบšเปเปˆเบกเบตเบซเบเบฑเบ‡เป€เบซเบผเบทเบญเบขเบนเปˆเปƒเบ™เป€เบˆเบปเป‰เบฒเบžเบฒเบš.

Option 2 เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบ”เบฑเบš Docker, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เบฑเป‰เบ‡ host container/storage เป‚เบ”เบเบเบปเบ‡เปƒเบชเปˆเบ–เบฑเบ‡.

# 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 เบžเบฒเบเปƒเบ™เบเปˆเบญเบ‡เบšเบฑเบ™เบˆเบธเบˆเบฐเบšเปเปˆเบ•เป‰เบญเบ‡เบ”เบฒเบงเป‚เบซเบฅเบ”เบกเบฑเบ™เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เปเบฅเบฐเบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เปเปˆเบกเบฒเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบฎเบนเบšเบžเบฒเบšเบ™เบตเป‰เบเปเปˆเบˆเบฐเบชเบฒเบกเบฒเบ”เป€เบญเบปเบฒเบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบ‚เบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบˆเบฒเบ cache. .

Option 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 เบ”เบฒเบงเป‚เบซเบฅเบ”เบฎเบนเบšเบžเบฒเบš, เบฎเบนเบšเบžเบฒเบšเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ•เปเปˆเบกเบฒเบžเบฒเบเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™.

เบšเปˆเบญเบ™เบˆเบฑเบ”เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

ะฃ เบšเบฑเบ™เบˆเบธ / เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ เบกเบตเบ„เบงเบฒเบกเป€เบขเบฑเบ™เป€เบŠเบฑเปˆเบ™เบฎเป‰เบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก (เบฎเป‰เบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก), เบ‚เบญเบšเปƒเบˆเบ—เบตเปˆเป€เบกเบทเปˆเบญเป€เบ›เบตเบ”เบ•เบปเบงเปเบฅเบฐเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต, เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบšเบฑเบ™เบˆเบธเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบฎเป‰เบฒเบ™เบฎเบนเบšเบžเบฒเบšเบžเบฒเบเบ™เบญเบเปƒเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เป‚เบ”เบเบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเป‰เบง, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเบซเบ™เบถเปˆเบ‡เบซเบผเบทเบซเบผเบฒเบเบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เปเบšเบšเบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เปƒเบชเปˆเป„เบŸเบฅเปŒ 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 เบžเบฒเบเปƒเบ™เบฎเบนเบšเบžเบฒเบšเบšเบฑเบ™เบˆเบธ, เบšเบญเบเป„เบ”เป€เบงเบตเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปƒเบซเป‰เปƒเบŠเป‰ "additionalimagestores" เปƒเบ™ /var/lib/shared folder. เปเบฅเบฐเปƒเบ™เปเบ–เบงเบ•เปเปˆเป„เบ›เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป‚เบŸเบ™เป€เบ”เบตเบ—เบตเปˆเปเบšเปˆเบ‡เบ›เบฑเบ™เปเบฅเบฐเป€เบžเบตเปˆเบกเบชเบญเบ‡เบชเบฒเบกเป„เบŸเบฅเปŒเบฅเบฑเบญเบเป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบซเป‰เบกเบตเบเบฒเบ™เบฅเปˆเบงเบ‡เบฅเบฐเป€เบกเบตเบ”เบˆเบฒเบเบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต / เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ. เป‚เบ”เบเบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเป‰เบง, เบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเบชเป‰เบฒเบ‡เบšเปˆเบญเบ™เป€เบเบฑเบšเบฎเบนเบšเบžเบฒเบšเบ–เบฑเบ‡เป€เบ›เบปเปˆเบฒ.

เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ—เปˆเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบšเบฑเบ™โ€‹เบˆเบธ / เบเบฒเบ™โ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹เปƒเบ™โ€‹เบฅเบฐโ€‹เบ”เบฑเบšโ€‹เบ—เบตเปˆโ€‹เบชเบนเบ‡โ€‹เบโ€‹เปˆโ€‹เบงเบฒโ€‹เป‚เบŸโ€‹เป€เบ”เบตโ€‹เบ™เบตเป‰โ€‹, Buildah เบˆเบฐโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบฎเบนเบšโ€‹เบžเบฒเบšโ€‹.

เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบ 2 เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เป€เบกเบทเปˆเบญเบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต Buildah เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เปเบฅเบฐเบ‚เบฝเบ™เปƒเบชเปˆเบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต / เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปƒเบ™เป‚เบฎเบ”เปเบฅเบฐ, เบ•เบฒเบกเบ™เบฑเป‰เบ™, เบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบนเบ‡เบชเบธเบ”เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบเบฑเบšเบฎเบนเบšเบžเบฒเบšเบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบš 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 เบžเบฒเบเปƒเบ™ container เปƒเบ™เป‚เปเบ”เบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต, Buildah เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบฎเบนเบšเบžเบฒเบšเปƒเบ”เป†เบ—เบตเปˆเป„เบ”เป‰เบ–เบทเบเบ”เบฒเบงเป‚เบซเบผเบ”เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เป‚เบ”เบเปƒเบŠเป‰ Podman / CRI-O (เบชเบฐเบšเบฒเบเบ”เบต, เบ„เบงเบฒเบกเป„เบง), เปเบ•เปˆเบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เปƒเบชเปˆเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡ (เบชเบฐเบšเบฒเบเบ”เบต, เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž). เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบญเบฑเบ™เบ™เบตเป‰เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบดเบ”เบเบฒเบ™เปเบเบ SELinux เบชเปเบฒเบฅเบฑเบšเบšเบฑเบ™เบˆเบธ.

nuance เบ—เบตเปˆโ€‹เบชเปเบฒโ€‹เบ„เบฑเบ™โ€‹

เบžเบฒเบเปƒเบ•เป‰เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เปƒเบ”เบเปเปˆเบ•เบฒเบกเบ—เปˆเบฒเบ™เบ„เบงเบ™เบฅเบถเบšเบฎเบนเบšเบžเบฒเบšเปƒเบ”เป†เบญเบญเบเบˆเบฒเบเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบ—เบตเปˆเบขเบนเปˆเป€เบšเบทเป‰เบญเบ‡เบซเบผเบฑเบ‡. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต Buildah เบญเบฒเบ”เบˆเบฐเบฅเบปเป‰เบกเบฅเบปเบ‡.

เปเบฅเบฐเบชเบดเปˆเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบ‚เปเป‰เป„เบ”เป‰เบ›เบฝเบšเบ—เบฑเบ‡เบซเบกเบปเบ”

เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปเบกเปˆเบ™เบšเปเปˆเบˆเปเบฒเบเบฑเบ”เบเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบงเบฒเบ‡เบฎเบนเบšเบžเบฒเบšเบšเบฑเบ™เบˆเบธเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบชเปˆเบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เปเบฅเบฐเปƒเบซเป‰เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบกเบฑเบ™เบเบฑเบšเบ–เบฑเบ‡ Buildah เบ—เบฑเบ‡เบซเบกเบปเบ”. เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบซเบผเบฒเบเบฎเป‰เบญเบเบฎเบนเบšเบ—เบตเปˆเบฅเบฐเบšเบปเบš CI/CD เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เบ›เบฐเบˆเปเบฒเป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบšเบšเบฑเบ™เบˆเบธ. เบžเบงเบเป€เบฎเบปเบฒเบชเบธเบกเปƒเบชเปˆเบฎเบนเบšเบžเบฒเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบขเบนเปˆเปƒเบ™เป‚เบฎเบ”เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบซเบ™เบถเปˆเบ‡เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เป‚เบ”เบเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ (NFS, Gluster, Ceph, ISCSI, S3 ...), เบžเบงเบเป€เบฎเบปเบฒเป€เบ›เบตเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ—เบปเปˆเบงเป„เบ›เปƒเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ™เบตเป‰เบเบฑเบšเบ—เบธเบ Buildah เบซเบผเบท Kubernetes nodes.

เบ”เบฝเบงเบ™เบตเป‰เบกเบฑเบ™เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเบ•เบดเบ”เบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ™เบตเป‰เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ–เบฑเบ‡ Buildah เปƒเบ™ /var/lib/shared เปเบฅเบฐเบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบกเบฑเบ™ - เบเปˆเบญเบ‡เบšเบฑเบ™เบˆเบธ Buildah เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ”เบฒเบงเป‚เบซเบฅเบ”เบฎเบนเบšเบžเบฒเบšเป‚เบ”เบเบเบฒเบ™เบ”เบถเบ‡. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบ–เบดเป‰เบกเป„เบฅเบเบฐเบ—เบฒเบ‡เบชเปˆเบงเบ™เบซเบ™เป‰เบฒเบ‚เบญเบ‡เบ›เบฐเบŠเบฒเบเบญเบ™เปเบฅเบฐเบ—เบฑเบ™เบ—เบตเบžเป‰เบญเบกเบ—เบตเปˆเบˆเบฐเบกเป‰เบงเบ™เบญเบญเบเบšเบฑเบ™เบˆเบธ.

เปเบฅเบฐเปเบ™เปˆเบ™เบญเบ™, เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบžเบฒเบเปƒเบ™เบฅเบฐเบšเบปเบš Kubernetes เบ—เบตเปˆเบกเบตเบŠเบตเบงเบดเบ”เบŠเบตเบงเบฒเบซเบผเบทเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบตเป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เบ•เบปเบงเปเบฅเบฐเปเบฅเปˆเบ™เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบตเบขเบนเปˆเบ—เบธเบเบšเปˆเบญเบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ”เบถเบ‡เบเบฒเบ™เบ”เบฒเบงเป‚เบซเบฅเบ”เบฎเบนเบšเบžเบฒเบš. เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต, เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบŠเบธเบเบเบนเป‰เปƒเบซเป‰เบญเบฑเบšเป‚เบซเบฅเบ”เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบ›เบฑเบšเบ›เบธเบ‡เปƒเบซเป‰เบกเบฑเบ™, เบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบฎเบนเบšเบžเบฒเบšเบ™เบตเป‰เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป„เบ›เบซเบฒเบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเปเบšเปˆเบ‡เบ›เบฑเบ™, เบšเปˆเบญเบ™เบ—เบตเปˆเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบšเบ—เบธเบ nodes.

เบฎเบนเบšเบžเบฒเบšเบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบตเบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบฅเบธเบซเบผเบฒเบ gigabyte เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ”. เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™ cloning เบฎเบนเบšเบžเบฒเบšเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปƒเบ™เบ—เบปเปˆเบง nodes เปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบง containers เป€เบเบทเบญเบšเบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ”.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบˆเบธเบšเบฑเบ™เบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เปƒเบซเบกเปˆเบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ overlay volume mounts, เป€เบŠเบดเปˆเบ‡เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡ containers เป„เบงเบ‚เบถเป‰เบ™.

เบชเบฐเบซเบฅเบธเบš

เบเบฒเบ™เปเบฅเปˆเบ™ Buildah เบžเบฒเบเปƒเบ™เบเปˆเบญเบ‡เบšเบฑเบ™เบˆเบธเปƒเบ™ Kubernetes/CRI-O, Podman, เบซเบผเบทเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡ Docker เปเบกเปˆเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เบ‡เปˆเบฒเบเบ”เบฒเบ, เปเบฅเบฐเบ›เบญเบ”เป„เบžเบเบงเปˆเบฒเบเบฒเบ™เปƒเบŠเป‰ docker.socket. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบฎเบนเบšเบžเบฒเบšเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเปƒเบ™เบซเบผเบฒเบเบงเบดเบ—เบตเบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ„เบงเบฒเบกเบชเบปเบกเบ”เบนเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.

เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบžเบทเปˆเบญเป€เบฅเบฑเปˆเบ‡เบซเบผเบทเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡เบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เบ”เบฒเบงเป‚เบซเบผเบ”เบฎเบนเบšเบžเบฒเบšเบเบฑเบš nodes.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™