GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Erste Schritte mit Buildah zum Verwalten von Linux-Containern

Docker,  Docker, Docker ” das haben wir bis vor kurzem verwendet.

Docker ist zweifellos immer noch sehr beliebt. Aber wie wir in der IT-Branche wissen, vollzieht sich die Evolution schnell. Jetzt hören wir also Buildah, Podman, CRI-O, Skopeo .

Wenn Sie sich auf eine Analogie beziehen möchten – wir haben verschiedene Arten von Beeren wie schwarze Beeren, Blaubeeren, Himbeeren, aber eines Tages entscheidet sich jemand für Blaubeeren. Also zwischen Buildah, Podman, CRI-O Ich habe mich für buildah entschieden. Wieso den? Weil es genauso interessant ist wie andere Containerplattformen.

Lassen Sie uns in Buildah eintauchen!

Was ist Buildah?

Buildah ist ein Befehlszeilentool zum Erstellen von Open Container Initiative (OCI)-Images. Es kann mit Docker, Podman, Kubernetes verwendet werden – je nachdem, welches Ihr bevorzugtes Container-Tool ist!

Buildah wird zum Erstellen, Erstellen, Verwalten und Ausführen von Container-Images sowie Containern verwendet.

Mit Buildah erstellen Sie einen funktionierenden Container entweder aus einem Image oder von Grund auf neu. Sie können auch ein Image aus einem funktionierenden Container oder mit Dockerfile erstellen. Sie können die Images im OCI-Format oder im Upstream-Docker-Format erstellen. Sie können Container und Bilder ändern und löschen.

Das Interessanteste an Buildah ist, dass es keinen Daemon benötigt, um zu funktionieren. Also sag nein zu #bigfatdaemons. Das Fehlen eines speziellen Daemons gibt Funken, wenn es um kontinuierliche Integration und kontinuierliche Bereitstellung geht, um Container zu erstellen.

Kein Daemon bedeutet auch, dass Sie den Daemon von Docker durch Buildah eliminieren können, um Container-Images zu erstellen. Aber das bedeutet nicht, dass Buildah nicht in Docker integriert werden kann. Denn mit Dockerfile können Sie Ihr Container-Image von Buildah erstellen, verwalten und ausführen. Beeindruckend oder?

Installation von Buildah unter Linux

Mal sehen, wie Sie sich mit Buildah die Hände schmutzig machen. Pakete für Buildah sind für Fedora und CentOS verfügbar. Sie können sie einfach über den Paketmanager Ihrer Linux-Distribution installieren. Ich werde hier einige der gebräuchlichsten auflisten:

Um Buildah auf Fedora zu installieren, verwenden Sie

dnf install buildah -y

So installieren Sie Buildah auf CentOS oder RedHat:

yum install buildah -y

Um Buildah auf Ubuntu und Debian zu installieren, können Sie das offizielle PPA verwenden, das von Project Atomic bereitgestellt wird.

sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository -y ppa:projectatomic/ppa
sudo apt install buildah

Sobald Buildah installiert ist, ist es an der Zeit, damit zu spielen.

Grundlegende Befehle zur Verwendung von Buildah

Hier sind einige grundlegende Befehle, um mit buildah zu beginnen.

Um die Version von Buildah zu kennen.

buildah --version

Die allererste Aufgabe besteht darin, das Container-Image aus öffentlichen oder privaten Repositories abzurufen. Um ein Bild abzurufen, verwendet Buildah die Variable „from“. Die ‚from‘-Variable ist die gleiche wie sie in Dockerfile verwendet wird. Der Unterschied besteht darin, dass wir in Docker die Variable „from“ in Dockerfile angeben, während wir in Buildah die Variable über die Befehlszeile übergeben.

buildah from ubuntu

Im obigen Befehl ist Ubuntu mein Container-Image. Nachdem Sie das Ubuntu-basierte Image erfolgreich gezogen haben, sehen Sie am Ende der Ausgabe – „ubuntu-working-container“.

Nachdem Sie wissen, dass Sie das Bild erfolgreich abgerufen haben, möchten Sie jetzt möglicherweise eine Liste der Bilder sehen, die Sie abgerufen haben. Aber vorher fragen Sie sich vielleicht:„Wo werden diese Bilder gespeichert?“. Das abgerufene Image wird auf dem Host selbst gespeichert.

buildah images 
 IMAGE NAME                                               IMAGE TAG            IMAGE ID             CREATED AT             SIZE
 docker.io/library/ubuntu                                 latest               94e814e2efa8         Mar 12, 2019 00:20     91.4 MB
 docker.io/library/fedora                                 latest               d09302f77cfc         Mar 12, 2019 00:20     283 MB

Wenn Sie bereits mit Docker-Befehlen vertraut sind, sind Ihnen vielleicht die Ähnlichkeiten zwischen Docker- und Buildah-Befehlen aufgefallen. In Docker verwenden wir beispielsweise den Befehl „docker images“, um die Liste der abgerufenen Bilder anzuzeigen.

Hier ist der Befehl, um die Liste der laufenden Container anzuzeigen. In Buildah wird dieser Container ausgeführt, sobald das Ziehen des Container-Image vollständig abgeschlossen ist. Im Vergleich zu Docker müssen wir nach dem Abrufen des Images das Image mit „docker run“ ausführen, und dann wird nur der Container ausgeführt.

CONTAINER ID  BUILDER  IMAGE ID     IMAGE NAME                       CONTAINER NAME
 1063320d2dc0     *     94e814e2efa8 docker.io/library/ubuntu:latest  ubuntu-working-container
 978a399e0aa7     *     d09302f77cfc docker.io/library/fedora:latest  fedora-working-container

Wenn Sie alle laufenden Container bereinigen und entfernen möchten, führen Sie den folgenden Befehl mit Vorsicht aus. Denn sobald Sie den Befehl ausführen, werden Ihre Container entfernt. Das Privileg, das wir in Buildah gegenüber Docker erhalten, ist, dass Docker uns den laufenden Container nicht entfernen lässt, Buildah jedoch schon. Bei der Verwendung von Docker müssen wir zuerst den Container stoppen und nur dann können wir das Image entfernen.

buildah rm --all

Wenn Sie mit einem Befehl nicht weiterkommen, gibt es die Option –help.

buildah --help

Sehen wir uns einige Anwendungsfälle von Buildah an. Um mit der praktischen Implementierung zu beginnen, beginnen wir mit einfach. Und sobald Sie das Tempo mit dem Buildah gefunden haben, können Sie Ihrer Kreativität freien Lauf lassen und interessante Sachen machen.

Erstellen eines Apache-Webserver-Container-Images [Hands On]

Lassen Sie uns versuchen, was Sie gerade gelernt haben, mit einem Buildah-Beispielprojekt.

Was wird Ihrer Meinung nach benötigt, um einen Apache-Webserver in einem Container laufen zu lassen?

Natürlich ein Image, ein laufender Container und was noch? Nun, das Wichtigste, was wir brauchen, ist – wir müssen ein httpd-Paket in einem Container installieren. Oh! wie machen wir das? Keine Bange. Das werde ich dir sagen.

Lassen Sie uns zuerst ein Linux-Distributions-Image ziehen. Wählen Sie, was Ihnen am besten gefällt. Ich habe das Basis-Image von CentOS gezogen.

buildah from centos

Installieren Sie nun httpd im CentOS-Container. Sie können dies mit diesem Befehl tun:

buildah run centos-working-container yum install httpd -y

Sie sehen eine Ausgabe wie diese.

Was wir getan haben, ist, dass wir das httpd-Paket installiert haben, ohne überhaupt in den Container zu gehen. Es ist, als würden Sie die Teile Ihres Fahrrads aufstellen, ohne die Garage zu betreten. Sie können in der Ausgabe des obigen Befehls sehen, dass das Paket vor uns installiert wurde. Buildah schummelt nicht 😉

Lassen Sie uns nun eine benutzerdefinierte index.html-Datei erstellen.

echo "Linux Handbook is interesting !" > index.html

Kopieren Sie Ihre benutzerdefinierte Datei index.html in den Verzeichnispfad /var/www/html

buildah copy centos-working-container index.html /var/www/html/index.html
4e955fea0268518cbaa500409dfbec88f0ecebad28d84ecbe250baed97dba889

Sie müssen sich fragen, woher /var/www/html kommt? Und warum haben wir die Datei index.html in diesen Verzeichnispfad kopiert?

Wenn wir das httpd-Paket installieren, wird das Verzeichnis /var/www/html erstellt. /var/www/html ist nur der Standard-Root-Ordner des Webservers.

Um den Container zu starten, müssen wir entrypoint konfigurieren für den Behälter.

buildah config --entrypoint "/usr/sbin/httpd -DFOREGROUND" centos-working-container

Die Option „-DFOREGROUND“ wird zusammen mit „/usr/sbin/httpd“ verwendet, um httpd zu starten. „-DFOREGROUND“ bewirkt, dass der httpd/apache-Prozess im Vordergrund statt im Hintergrund ausgeführt wird. Der Vorteil, dass der httpd-Prozess NICHT im Hintergrund ausgeführt wird, besteht darin, dass Sie die Debug-Protokolle auf der Konsole sehen können. Wenn wir die Option „-DFOREGROUND“ nicht verwenden, wird der Apache-Server gestartet und direkt danach gestoppt.

Jetzt müssen wir alles, was wir getan haben, im Container speichern. Das commit wird es für uns tun.

buildah commit centos-working-container  Linux-Handbook

Das Linux-Handbuch-Image ist verfügbar und Sie können dieses Image in die Registrierung verschieben, um es zu verwenden.

buildah images
IMAGE ID IMAGE NAME CREATED 
AT SIZE
9110ae7f579f docker.io/library/centos:latest 
Mar 31, 2019 14:36 234.7 MB
49bd5ec5be71 docker.io/library/Linux-Handbook:latest 
Apr 4, 2019 17:28 427.7 MB

Also, alles bereit, um sich mit Buildah die Hände schmutzig zu machen?

Geschrieben von Servesha Dudhgaonkar


Linux
  1. Erste Schritte mit Linux-Firewalls

  2. 5 Tipps für den Einstieg in die Linux-Serversicherheit

  3. Erste Schritte mit Samba für Interoperabilität

  4. Erste Schritte mit socat, einem Mehrzweck-Relay-Tool für Linux

  5. Erste Schritte mit PostgreSQL unter Linux

Erste Schritte mit dem Linux-Betriebssystem

Vagrant-Tutorial – Erste Schritte mit Vagrant unter Linux

Erste Schritte mit Docker Compose unter Linux

Erste Schritte mit VirtualBox unter Linux – Teil 1

Erste Schritte mit Flutter auf dem Linux-Desktop

Erste Schritte mit und Installation von Slack für Linux