á¨áĽá ááŤá áááá áá° á°ááŤáŠ á¨ááłáŞáŤ áááá˝ á¨ááá¨áľ áá áľ áááľáá? á á°ááá áĽááá ááłáŞáŤáá˝ áĽááľ á ááľ áĽáá˛á¨áá¨á áááľá¨á ááááá áááአáá˝áá.
áĽá á°áὠᨠOCI ááŤáŁ ááľáá˝á á ááááŁáľ ááłáĽ ááłáŁá
áľááá
á°áá˝ áŤáááá¨áĽ 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 ááá
ᣠááŽááŤáá á ááŤáŁá ááľáĽ áĽáá áááá
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
á ááá á áá°á¨á᪠áá¨ááťáá˝ áá፠áĽáááĽáŤááá˘
# 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. á¨áá°á á°á áááľ á¨ááŤáľááá á¨áá ááĽáŤááłááą áŽáá´ááá á¨áŤáľáá áá á°á áááŤáŁáá˝ / ááľá ááá á áĽá á¨áĽá ááŤáŁá áá á áľáá˝ ááŤáŤáŁ áááááľ áá˝áá ᢠáĽá á á°á¨ááŞáŁ á¨á ááľ áááŤáá á áĽá ááŤáŁá ááľáĽáŁ á /áááŁáł áá á°á ááľáĽ áŤáľáááĄáĄ-
# 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 áá°áŚá˝ á áĽáą áá á°ááťá ááááᢠáĽáá˛á ááááą ááŤáŁ áĽááłá áĽáá° --uidmap á ááŤá á áá¨áá á á°á áá áľá áŚáł áááá áááľ áá˝ááᢠ0:100000:10000.
á áááá áĄáĄ áá áĽáá áŤáá á ááťá¸á á áŁá á ááł ááᣠááááŤáąá á¨áŽáá´ááá ááááŚá˝ á¨ááᥠááľáá˝ á áĽáŤááłááą áá áá° á áľá°ááá áľááááá ᥠáĽá áá¸á፠âá ááá ááááľâ á¨ááá áá á áá°áŤáᢠáľáŤáá á˛á¨ááľ, á¨Buildah ááŤáŁá ááľáá áá° áááᥠááá áĽá á á áľá°ááá áá áŤááá áááľ ááĽááľ á áá áľ. á áááĽáá áá á¨ááŤáŁá ááľá á ááááŁá áľ áá, á á፠áá á á áľá°ááá áá ááá ááá áľááááá, áĽáá°áá á¨áááᥠááľáĽ ááá¨áľ á áá áľ.
á ááŤá 2. á¨áśá¨á á°á¨á á ááťá¸á á¨ááá á¨á áľá°áááá ááŤáŁ/áá¨ááť á ááĽáł áá° ááŤáŁá ááľá¨á áá˝ááá˘
# 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
á°á áááľ. ááŤáŁá á á áľá°ááá áá áŤááá áá¨ááť áĽáá˛ááá áľáááŤáľá˝áá áĽá á°ááŽá-á áá ááľá áá° ááľáá ááá CRI-O ááŤáľáᣠáľááá˝á áá áŽáá´áááŽá˝á áááááŁáľ á áŁá á áľá°ááá ááááľ ááᢠá á°á¨ááŞá, á Buildah áŽáá´ááá ááľáĽ áŤááľ áá°áśá˝ á á áľá°ááá áá áŤáá áá¨ááť áá ááľá°ááĽá áĽáá˛ááĽáŠ ᨠSELinux áááŤá¨áľá áá°áá¨á áŤáľáááááłá. áá á ááŤá á ááá á¨áśá¨á áśáŹáľ á¨á°áťá áááá áἠáá á, ááááŤáąá ááŤáŁá á ááŠáľ á¨á°á áááľ áŁá áŞáŤáľ áłááˇá áĽá á á áľá°ááá áá áááááá áŽáá´ááá á ááá áááłáľ áĽá ááľáŹáľ á áá˝áá.
á áááá áĄáĄ áá¸á፠áá á áá áľáááłá°á áĽáá á¨áá°áá ááᢠ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 ááŤá¨á á¨áá ááá á á ááľ á áŠá áŽáá´áááŽá˝ á á áľá°ááá áá á¨áááľ ááłá¨áť á¨áá¸áá áĽá á áá áá°á¨áľ ááĽá áááá áá° ááľáá / CRI-O ááľá áá¨ááť ááľáĽ ááľááŁáľ á áá˝ááᢠá áá á áŠá, á áĽáŤáą ááŽáááľ ááľáĽ, á ááľ áŽáá´ááá á¨ááá˝ áŽáá´áááŽá˝ áľáĽáľáĽ ááľáĽ áŁáá áááŁáľ áá˝áá.
á áááá áĄáĄ ááľáá / CRI-Oá á áá áá á¨áá¨áą ááľáá˝á áá áá áľáááá˝á áĽáá á á áľá°ááá á°á¨á á¨á፠áá¸á፠á¨áá áá á¨á¨á ááᢠááá ááᣠá ááľ áá Buildah ááľáá áŤáá¨á° á ááᣠ፠ááľá á ááŽáááą ááľáĽ á áá°á¨á ááá¸áá áááŁáłáá˝ ááľáĽ áĽá á áá ááá áá˝ááá˘
á°á¨á᪠áá¨ááť
ĐŁ
áá°áá á¨á°á¸áĽááá áĽá ᨠ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á áĽááľá°áŤáááá, á¨áá¨ááť ááá á /var/lib/share á áá ááľáĽ "additionalimagestores" áĽáá˛á áá áĽáááá¨ááá. áĽá á áááĽáá ááľáá áŁá¨á°á፠á áá áĽáááĽáŤáá áĽá á¨ááŤáŁ / áá¨ááť ááá á áááľ á áááŁáĽ áá áá áĽááłááá áááľ á¨áááá፠áááá˝á áĽáá¨ááŤáá ᢠá áá°á¨áąáŁ áŁáś á¨ááŤáŁ ááľá áá¨ááť áĽá¨áá áá ááá˘
áŽáá´áááŽá˝á á¨áŤá/á¨áá á áá á áá á°á¨á áŤá¨ááš Buildah ááľáášá áá áá áá˝ááá˘
á áá á¨áá áá° á°áááááá á ááŤá 2 áĽááááľáŁ á¨Buildah áŽáá´ááአáá° áŽáá´áááŽá˝ ááá ἠáĽá ááťá á˛á˝á / á á áľá°áááá˝ áá áá¨áá¸áľ áĽá á áá áá á¨áľ á ááľáá / 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/áá¨ááť áá° /var/lib/á ááŤáŁá ááľáĽ á á°ááŁá˘-áĽáť áááł áĽáá°á°á፠áἠáá áᢠáľááá , á áŽáá´ááá ááľáĽ á ááľáŤáľ, Buildah ááľááá á ááľáá / CRI-O (áá, ááĽááľ) á áá áá á¨áá¨áąáľá áááááá ááľáá˝ áá áá áá˝áá, ááá áá áá° áŤáą áá¨ááť (áá, á°á áááľ) áĽáť ááťá áá˝áá. áĽáá˛áá áá á¨áá°á¨áá áááŤáŁá ᨠSELinux áááŤá¨áľá áłáŤá°ááá áááá áἠáá áá˘
á áľááá áŁá áá
á ááá á áááľ áááł ááááá ááľáá˝ á¨áľá áá¨ááťá áá°á¨á á¨ááŁá¸ááᢠá áá áá፠á¨Buildah ááŤáŁá áá áá˝ áá˝áá.
áĽá áášá ፠áĽáť á áá°ááá˘
á¨á°á¨á᪠áá¨ááť áĽáľáá˝ á¨áá áŁáá áááł áĽáť á¨á°áá°áĄ á áá°ááᢠáááłáᣠáááá á¨ááŤáŁ ááľáá˝ á á፠á¨á ááłá¨ áá¨áĽ áá¨ááť ááľáĽ ááľááἠáĽá áááá á¨Buildah áŽáá´áááŽá˝ ááłá¨áť ááľá áľ áá˝ááᢠá¨áĽá á¨á˛á á/á˛á˛ áľáááłá˝á á ááŤáŁ á¨á°áŤá ááľáá˝á áááááŁáľ á á¨ááá á¨áá áááŁá¸á á ááśáá˝ á¨ááá አááľáá˝ á áá áĽáá áᢠáĽááá á áá ááľáá˝ á á ááľ á¨áá¨ááť á áľá°ááá áá áĽáá°áŠáŤá¸ááá áĽá á¨ááŤá á°ááŤá á¨á ááłá¨ áá¨áĽ áá¨ááť ááłáŞáŤáá˝á (NFSᣠGlusterᣠCephᣠiSCSIᣠS3 ...) á áá áá áá á áá¨ááť á¨ááá Buildah ááá Kubernetes nodes áá áĽáááŤááá˘
á áá áá áá á¨á ááłá¨ áá¨áĽ áá¨ááť áá° Buildah ááŤáŁ á /var/lib/share áá ááŤá á á áá áĽá ፠áá - Buildah áŽáá´áááŽá˝ á¨á áá á áá ááľáá˝á á ááá°áľ ááá¨áľ á¨ááŁá¸ááᢠáľááá , á¨á áľá-ááἠá°á¨áá áĽááá¨ááŤáá áĽá áá˛áŤáá áĽááášá ááááŁáľ ááá áá.
áĽá á áĽááἠᣠáá á ááĽáł á¨áŠá áááľáľ áľáááľ ááá á¨áĽá ááŤáĽáŤ áá á¨á° áááľ ááľáĽ áááááá ááľá áłáááľáą áŽáá´áááŽá˝á á ááááá áŚáł áááľááá áĽá áááľáŹáľ ááŤáááá áá˝ááᢠá¨áá á á áá á¨áŽáá´ááá áááἠá¤áľ á¨ááááá ááľá áá° áĽáą áááŤá á¨áááľ áĽáŤá á˛á°áá°áᣠáá á ááľá á áŤáľ á°á áá° á¨á°á፠á¨á ááłá¨ áá¨áĽ áá¨ááť ááá áá˝ááᣠáá á áááá á áááá˝ áá˛áŤáá ááááá˘
á¨ááŤáŁ ááľáá˝ á ááłááľ áá á áá á áĽá áááŁááľ ááá áá˝ááᢠá¨á°á¨á᪠áá¨ááťáá˝ á°ááŁáŤáááľ áĽáá°áá áŤá ááľáá˝á á ááľááá ááááľ á¨ááááľá á áľáááááľ áŤáľáááłá áĽá á¨áĽá ááŤá˘áŤáá˝á áááá áá˛áŤáá áŤá°ááááá˘
á á°á¨ááŞá, á á áá áá áŽáá´áááŽá˝á áááŁáł á¨á áá ááŁá á¨ááŤá°áááá á á˛áľ á¨á°á°áŤá˘ áĽáŤá ááŤááá˝ áŁá ᪠áĽá¨á°áŤá áá.
áá°áá°ááŤ
Buildah á áŽáá´ááá ááľáĽ á áŠá áááľáľ/CRI-O á áŤáŁá˘áŁ ááľáá ááá áśá¨á ááľáĽ ááľáŹáľ á áŁá ááťááᣠáĽá docker.socketá á¨áá áá ááá áĽá á¨á áá á°á áááą á¨á°á á á ááᢠá¨ááľáá˝ áá á¨ááĽáŤáľ á°ááááááľá á áĽá á á¨áá¨áá, áĽá á áá á á°á áááľ áĽá á á áááá ááŤá¨á á¨á°áťááá ááá ááá á á á á°ááŤáŠ ááááśá˝ ááľáŹáľ áá˝áá.
á¨á°á¨á᪠áá¨ááťáá˝ á°ááŁáŤáááľ ááľáá˝á áá° á áááá˝ ááá¨áľá áááá á ááá áá á áá áááľáááľ áŤáľá˝áááłáá˘
ááá: hab.com