Proiectul Atomic, prin eforturile pe care le-a lansat in cadrul Open Container Initiative (OCI), a creat un instrument excelent numit Buildah . Buildah ajuta la crearea, construirea si actualizarea imaginilor containerului care sustin imagini in format Docker, precum si imagini compatibile cu OCI.
Buildah se ocupa de construirea imaginilor containerului fara a fi nevoie sa fie instalat un runtime complet al containerului sau daemon.
Buildah face sistemul de fisiere al containerului direct disponibile pentru gazda , mentinand construirea mai rapida si imaginea mai mica si mai sigura. Exista pachete Buildah pentru CentOS, Fedora si Debian.
In Fedora 26 - Buildah poate fi instalat folosind dnf
.
$ sudo dnf install buildah -yVersiunea curenta a buildah.
$ buildah --versionPrimul pas necesar pentru a construi o imagine container este de a obtine o imagine de baza, aceasta se face prin instructiunea
FROM
intr-un fisier Docker. Buildah face acest lucru intr-un mod similar.
$ sudo buildah from fedoraAceasta comanda trage imaginea bazata pe Fedora si o stocheaza in gazda. Este posibil sa inspectati imaginile disponibile pe gazda, executand urmatoarele.
$ sudo buildah images IMAGE ID IMAGE NAME CREATED AT SIZE 9110ae7f579f docker.io/library/fedora:latest Mar 7, 2018 20:51 234.7 MBDupa tragerea imaginii de baza, este disponibila o instanta a containerului care ruleaza aceasta imagine, acesta este un "container de lucru".
Urmatoarea comanda afiseaza containerele care ruleaza.
$ sudo buildah containers CONTAINER ID BUILDER IMAGE ID IMAGE NAME CONTAINER NAME 6112db586ab9 * 9110ae7f579f docker.io/library/fedora:latest fedora-working-containerBuildah ofera, de asemenea, o comanda foarte utila pentru a opri si a elimina toate containerele care ruleaza in prezent.
$ sudo buildah rm --allLista completa a comenzii este disponibila utilizand optiunea
-help
.
$ buildah --helpSa vedem cum sa folosim Buildah pentru a instala un server web Apache pe o baza de baza Fedora, apoi sa copiem un index.html personalizat pentru a fi difuzat de server.
Mai intai sa cream index.html personalizat.
$ echo "Hello!!!" > index.htmlApoi instalati pachetul httpd in interiorul containerului care ruleaza.
$ sudo buildah from fedora $ sudo buildah run fedora-working-container dnf install httpd -yCopiem index.html in
/var/www/html/
.
$ sudo buildah copy fedora-working-container index.html /var/www/html/index.htmlConfigurati punctul de intrare al containerului pentru a incepe
httpd
.
$ sudo buildah config --entrypoint "/usr/sbin/httpd -DFOREGROUND" fedora-working-containerAcum, pentru a face disponibil "containerul de lucru", comanda commit salveaza containerul intr-o imagine.
$ sudo buildah commit fedora-working-container hello- hello este acum disponibil si urmeaza sa fie utilizat.
$ sudo buildah images IMAGE ID IMAGE NAME CREATED AT SIZE 9110ae7f579f docker.io/library/fedora:latest Mar 7, 2018 22:51 234.7 MB 49bd5ec5be71 docker.io/library/hello-fedora-magazine:latest Apr 27, 2018 11:01 427.7 MBDe asemenea, este posibil sa folositi Buildah pentru a testa aceasta imagine executand urmatorii pasi.
$ sudo buildah from --name=hello docker.io/library/hello $ sudo buildah run helloAccesand
http: // localhost
se va afisa " Hello !!!
„