Überblick
Buildah ist ein auf Linux basierendes Open Source-Tool, mit dem OCI-kompatible (Open Container Initiative) Container erstellt werden können. Das heißt, dass die Container auch mit Docker und Kubernetes kompatibel sind. Mit Buildah können Sie Ihre bevorzugten Tools verwenden, um effiziente Container Images aus einem vorhandenen Basis-Image oder von Grund auf mit einem leeren Image zu erstellen. Es handelt sich um eine flexiblere und sicherere Methode zur Erstellung von Container Images. In diesem Artikel können Sie mehr über die Vorgehensweise erfahren.
Buildah (benannt nach dem Wort „Builder“, das mit einem Bostoner Akzent ausgesprochen wird) wurde 2017 von Daniel Walsh und seinem Team bei Red Hat entwickelt. Das Team begann mit der Entwicklung eines Kernprogramms für Container Images – einem Tool, das mit bestehenden Container Host-Tools verwendet werden kann, um OCI- und Docker-kompatible Container Images zu erstellen. Diese Images lassen sich dann in Container Registries speichern und in mehreren Runtime-Umgebungen einsetzen, mit oder ohne Verwendung eines Container Daemons wie dem von Docker (der Root-Zugriffsberechtigungen erfordert und dessen Container dann von der Funktionalität des Daemons selbst abhängig sind).
Das Ergebnis war Buildah – ein Befehlszeilentool, das:
- Container Images mit oder ohne Dockerfiles (ein Textdokument, das alle Befehle enthält, die Nutzende aufrufen können, um ein Image zu entwickeln) erstellt
- Container Images von Grund auf neu oder mit einem vorhandenen Container Image als Vorlage erstellt
- Keine Build-Tools im Image selbst enthält, was die Größe der erstellten Images reduziert, die Sicherheit erhöht und einen einfacheren Transport mit weniger Ressourcen ermöglicht
- Mit Dockerfiles kompatibel ist und einen einfachen Übergang von Docker ermöglicht
- Nutzerspezifische Images erstellt, sodass die Images nach den Nutzenden sortiert werden können, die sie erstellt haben
Warum Buildah?
Buildah bietet die Flexibilität, Images ohne Dockerfiles zu erstellen und ermöglicht die Integration anderer Skriptsprachen in den Build-Prozess. Die Effizienz, die Buildah bei der Verwendung von Build-Tools bietet, die außerhalb des Images selbst liegen, ermöglicht eine beschleunigte Innovation und Implementierung neuer Ideen. Container Images können schnell erstellt und weiterentwickelt werden, und zwar ausschließlich mit Tools und Prozessen, die notwendig sind, um sie einsatzbereit zu machen.
Mit Buildah können Sie:
- Images prüfen, verifizieren und ändern
- Container und Images aus dem lokalen Storage in eine Public oder Private Registry oder ein Repository verschieben
- Images in Docker Hub übertragen oder daraus abrufen
- Lokal gespeicherte Container Images entfernen
- Das Root-Dateisystem eines funktionierenden Containers mounten und unmounten
- Die aktualisierten Inhalte des Root-Dateisystems eines Containers als Dateisystemebene für ein neues Image verwenden
Red Hat Ressourcen
Buildah und Podman
Sowohl Buildah als auch Podman sind ergänzende Open Source-Projekte und Befehlszeilentools, die mit OCI-Images und -Containern arbeiten und diese erstellen können. Buildah wurde zuerst entwickelt, und Podman verwendet denselben Build Code wie Buildah. Die Befehle von Buildah sind jedoch wesentlich detaillierter als die von Podman und ermöglichen eine präzisere Kontrolle über die Images und die Entwicklung von detaillierten Image-Schichten. Der „build“-Befehl von Podman verwendet Teile der Funktionalität von Buildah.
Buildah ist auf die Erstellung von Container Images spezialisiert und repliziert die Befehle, die in einem Dockerfile zu finden sind, jedoch ohne die Daemon Socket-Komponente. Podman hingegen ist auf die Funktionen spezialisiert, die erforderlich sind, um diese Images in einem Container zu verwalten und zu modifizieren. Mit Podman können Sie einen Container erstellen –wobei Sie Buildah verwenden, um das Container Image bereitzustellen – und dann den von Ihnen erstellten Container in einer Produktivumgebung unter Verwendung vertrauter CLI-Befehle ausführen, warten und ändern (wenn Sie einen Befehl in der Docker-CLI ausführen können, können Sie denselben Befehl auch in der Podman-CLI ausführen).
Ein weiterer Unterschied zwischen Podman und Buildah ist folgender: Die Container von Buildah werden hauptsächlich vorübergehend erstellt, um die Übertragung von Inhalten in das zu erstellende Container Image zu ermöglichen. Bei Podman hingegen erstellen die Nutzenden herkömmliche Container, die über einen längeren Zeitraum hinweg genutzt und verwaltet werden sollen. Die Container von Buildah dienen einem kurzfristigen Zweck, während die Container von Podman längerfristig angelegt sind.
Und noch etwas. Buildah und Podman haben keine gemeinsamen internen Darstellungen von Containern, sodass ein Container in dem einen Tool nicht in dem anderen zu sehen ist. Sie teilen jedoch interne Darstellungen von Container Images, sodass Container Images, die in dem einen Tool erstellt, geändert oder von diesem abgerufen werden, auch in dem anderen sichtbar und nutzbar sind.
Warum Red Hat?
Buildah wurde von Engineers und Entwicklungsteams von Red Hat ins Leben gerufen, um gemeinsam ein nützliches Tool zu entwickeln, mit dem sich Zeit sparen und die Produktivität steigern lässt. Wie Podman und Skopeo ist Buildah für diejenigen von großem Nutzen, die mit Linux-Containern arbeiten. Mit einem Upgrade von Red Hat Enterprise Linux stellen Sie sicher, dass Sie die Vorteile dieser Tools voll ausschöpfen können. Für Container und Kubernetes bietet Red Hat umfangreiche Lösungen, vom Betriebssystem bis hin zur Automatisierung.
Red Hat verfügt über umfassende Kenntnisse zu Containern und Kubernetes. Wir haben die Produkte und Services, um dafür zu sorgen, dass Sie Ihre Container-Strategie bestmöglich entwickeln und umsetzen können. Unabhängig davon, ob Sie Ihren Entwicklungsteams eine Plattform bereitstellen möchten, die speziell für Container entwickelt wurde, ob Sie Ihre Container-Infrastruktur auf einem der führenden Betriebssysteme ausführen wollen oder ob Sie Storage-Lösungen für die riesigen Datenmengen benötigen, die von Containern generiert werden – die Lösungen von Red Hat erfüllen Ihre Anforderungen.
Der offizielle Red Hat Blog
Lernen Sie mehr über unser Ökosystem von Kunden, Partnern und Communities und erfahren Sie das Neueste zu Themen wie Automatisierung, Hybrid Cloud, KI und mehr.