[1] Buildah – instalacja
6 sierpnia 2020Zainstalujemy teraz Buildah, który wspiera tworzenie obrazów kontenerów.
Jest możliwe tworzenie obrazów w formacie OCI (Open Container Initiative), które nie wymagają specjalnego demona czy usługi.
[1] Zainstaluj Buildah’a
[root@lsr01vm ~]# dnf -y install buildah
[2] Pokażę teraz podstawowe, minimalne wykorzystanie Buildah’a.
Stworzymy działający kontener z obrazu.
# stwórz działający kontener z obrazu [centos] [root@lsr01vm ~]# buildah from centos Getting image source signatures Copying blob 6910e5a164f7 done Copying config 831691599b done Writing manifest to image destination Storing signatures centos-working-container # pokaż listę kontenerów [root@lsr01vm ~]# buildah containers CONTAINER ID BUILDER IMAGE ID IMAGE NAME CONTAINER NAME d75ca7e5dc8b * 831691599b88 docker.io/library/centos:latest centos-working-container # kontenery możliwe do użycia z Podman'em [root@lsr01vm ~]# podman images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/library/centos latest 831691599b88 6 weeks ago 223 MB
[3] Operacje na pracującym kontenerze.
# ustaw zmienne shell'a [root@lsr01vm ~]# container=$(buildah from centos) [root@lsr01vm ~]# echo $container centos-working-container-1 # przykładowe komendy [root@lsr01vm ~]# buildah run $container echo "Witaj w świecie Buildah" Witaj w świecie Buildah [root@lsr01vm ~]# buildah run $container bash [root@38b7e6085482 /]# dnf -y install python36 [root@38b7e6085482 /]# exit exit [root@lsr01vm ~]# [root@lsr01vm ~]# buildah run $container whereis python3 python3: /usr/bin/python3.6 /usr/bin/python3.6m /usr/bin/python3 /usr/lib/python3.6 /usr/lib64/python3.6 /usr/include/python3.6m /usr/share/man/man1/python3.1.gz
[4] Kopiowanie plików do pracującego kontenera.
[root@lsr01vm ~]# echo "buildah test" > buildah.txt [root@lsr01vm ~]# buildah copy $container buildah.txt /tmp/buildah.txt 1b77eaaf205c4f1a674e1cea1bb200499ee89b1bf0b2fb8fbd900576e90c4e0d [root@lsr01vm ~]# buildah run $container cat /tmp/buildah.txt buildah test
[5] Montowanie systemu plików w pracującym kontenerze.
[root@lsr01vm ~]# buildah mount $container
/var/lib/containers/storage/overlay/f6cd8b5d71179720817740e62fcce68cec97db1360781662ded9b20e28c5e968/merged
[root@lsr01vm ~]# ll /var/lib/containers/storage/overlay/f6cd8b5d71179720817740e62fcce68cec97db1360781662ded9b20e28c5e968/merged
razem 0
lrwxrwxrwx. 1 root root 7 2019-05-11 bin -> usr/bin
drwxr-xr-x. 2 root root 6 06-11 04:35 dev
drwxr-xr-x. 1 root root 56 08-04 20:12 etc
drwxr-xr-x. 2 root root 6 2019-05-11 home
lrwxrwxrwx. 1 root root 7 2019-05-11 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 2019-05-11 lib64 -> usr/lib64
drwx------. 2 root root 6 06-11 04:35 lost+found
drwxr-xr-x. 2 root root 6 2019-05-11 media
drwxr-xr-x. 2 root root 6 2019-05-11 mnt
drwxr-xr-x. 2 root root 6 2019-05-11 opt
drwxr-xr-x. 2 root root 6 06-11 04:35 proc
dr-xr-x---. 1 root root 27 08-04 20:12 root
drwxr-xr-x. 1 root root 42 08-04 20:10 run
lrwxrwxrwx. 1 root root 8 2019-05-11 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 2019-05-11 srv
drwxr-xr-x. 2 root root 6 06-11 04:35 sys
drwxrwxrwt. 1 root root 25 08-04 20:27 tmp
drwxr-xr-x. 1 root root 41 06-11 04:35 usr
drwxr-xr-x. 1 root root 52 06-11 04:35 var
# odmontowanie systemu plików
[root@lsr01vm ~]# buildah umount $container
38b7e60854829f7ab29114f13cd36a706eae2e2464453d128e39ae3b0c85b6cb
[6] Tworzenie obrazu kontenera z pracującego kontenera.
[root@lsr01vm ~]# buildah commit $container zicher-centos:latest
Getting image source signatures
Copying blob eb29745b8228 skipped: already exists
Copying blob af2f01d4c36c done
Copying config 30616f9ca7 done
Writing manifest to image destination
Storing signatures
30616f9ca7f6d445be49d1e531a63c3166e6fba795743556646de76e20e69fe4
[root@lsr01vm ~]# buildah images
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost/zicher-centos latest 30616f9ca7f6 45 seconds ago 262 MB
docker.io/library/centos latest 831691599b88 6 weeks ago 223 MB
# możliwe jest użycie obrazu kontenera w Podman'ie
[root@lsr01vm ~]# podman run localhost/zicher-centos hostname
6cc689a7cfa8