Entwickler müssen immer schneller Anwendungen bereitstellen und auch aktuell halten. Daher gewinnen containerisierte Apps immer mehr an Bedeutung. Um automatisiert Container erstellen zu können, sind Images notwendig. Diese lassen sich mit Buildah erstellen.
Buildah ist ein guter, quelloffener Einstiegspunkt, um OCI-konforme Container-Images zu erstellen.
(Bild: buildah.io)
Buildah (Eigenschreibweise buildah) ist ein Open Source-Tool, das ursprünglich von Red Hat entwickelt wurde. Mit dem Tool können Entwickler aus ihrem Quellcode Container-Images erstellen. Auf Basis dieser Images lassen sich wiederum Container für Docker/Kubernetes-Umgebungen erstellen, aber auch für andere Container-Dienste wie Podman. Ein Vorteil von Buildah besteht darin, dass das Erstellen von Images keinen Overhead verursacht.
Das Tool Buildah ist auf Linux-Systemen schnell einsatzbereit.
(Bild: Joos / Canonical)
Die Open Container Initiative (OCI) treibt die Möglichkeiten von Containern immer weiter voran Für Tools in diesem Bereich ist es deshalb wichtig, die Standards einzuhalten, welche die OCI vorgibt. Dadurch lassen sich die Werkzeuge auch gemeinsam nutzen, auch wenn sie von verschiedenen Entwicklern programmiert wurden. Interessant ist das für eine Kombination von Podman mit Buildah.
Nach der Installation des Kommandozeilentools auf einem Linux-Rechner, können mit dem Befehl „buildah“ ohne zusätzliche Werkzeuge folgende Aufgaben erledigt werden:
Erstellen von neuen Containern aus verschiedenen Quellen
Images für Container erstellen, entweder aus einem funktionierenden Container oder mit Anweisungen eines Docker-Files
Images können im OCI-Image-Format oder im traditionellen Upstream-Docker-Image-Format erstellt werden
Das Root-Dateisystem eines funktionierenden Containers lassen sich für Anpassungen mounten und unmounten.
Der aktualisierte Inhalt des Root-Dateisystems eines Containers als Dateisystemschicht verwenden, um ein neues Image zu erstellen
Umbenennen eines lokalen Containers
Images aus dem System löschen
Container ohne Docker erstellen
Mit Buildah erstellen Entwickler OCI-konforme Container-Images, auf deren Basis sich wiederum OCI-konforme Container erstellen lassen. Die Linux-Container sind danach auf Linux und auf Entwicklerrechner mit dem Windows-Subsystem für Linux (WSL) in Windows 10/11 und Windows Server 2016/2019 lauffähig.
Eine Container-Runtime muss dabei nicht laufen. Die Erstellung von Images erfolgt unkompliziert über das Terminal. Dadurch lässt sich das Tool einfach in die eigene Entwicklungs-Pipeline einbinden und ermöglicht dadurch eine einfache und von anderen Tools unabhängige Erstellung von OCI-Container-Images.
Container-Images aus verschiedenen Quellen erstellen
Mit Buildah lassen sich Container-Images aus Docker-Files erstellen („buildah bud“) und auch OCI-Images aus bereits vorhandenen Images. Auch das Überprüfen von Images ist mit Buildah möglich („buildah inspect“). Ist bereits ein Container verfügbar, der zum Beispiel mit runC oder crun erstellt wurde, lassen sich aus diesem Container auch Images mit Buildah erstellen („buildah commit“). Dafür stellt das Terminal-Tool verschiedene Parameter bereit. Das Tool läuft auf den meisten Linux-Distributionen.
Nach der Installation steht Buildah über das Terminal als Kommandozeilentool zur Verfügung.
(Bild: Joos / Canonical)
Die Installation auf Debian/Ubuntu erfolgt zum Beispiel mit „sudo apt install buildah“. Auf Red Hat und CentOS kann die Installation mit „sudo yum -y install buildah“ oder „sudo dnf -y install buildah“ erfolgen. Hier arbeitet Buildah auch optimal mit Podman zusammen. Für die Installation auf openSUSE kann „sudo zypper install buildah“ genutzt werden.
Danach lassen sich die Optionen des Tools mit „buildah --help“ anzeigen. Für die einzelnen Parameter stehen auch Manpages zur Verfügung. Um sich zum Beispiel eine umfangreiche Hilfe zum Erstellen von Images auf Basis von Docker-Files anzeigen zu lassen, kann der Befehl „man buildah-bud“ verwendet werden. Das funktioniert auch für die anderen Parameter von Buildah.
Erste Schritte mit Buildah – Beispiele und Demos
Die Entwickler von Buildah stellen auch verschiedene Beispiele und Demos zur Verfügung, mit denen sich die Möglichkeiten von Buildah testen lassen. Die Installation dazu erfolgt zusammen mit Podman über „yum“ oder „dnf“ auf Red Hat/CentOS mit den folgenden Befehlen:
Container-Images mit Buildah aus Repositories laden und für eigene Images verwenden.
(Bild: Joos / Canonical)
Mit Buildah lassen sich aus vorhandenen Container-Repositories auch Container-Images herunterladen und für die Verwendung mit Buildah einsetzen. Der Befehl „buildah from centos“ lädt zum Beispiel ein CentOS-Image herunter. Die eingebundenen Images sind wiederum mit „buildah images“ zu sehen. Um aus einem mit Buildah heruntergeladenen Container-Image einen Container zu erstellen und am Beispiel von CentOS eine Anwendung zu installieren, in diesem Fall ein Webserver, kann der folgende Befehl zum Einsatz kommen:
buildah run centos-working-container yum install httpd -y
Um danach den Container zu bearbeiten und auf Basis des Containers ein eigenes Image mit Buildah zu erstellen, sind folgende Befehle notwendig:
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Container, die mit Buildah erstellt werden, lassen sich mit Podman betreiben.
(Bild: Joos / Canonical)
Die Beispiele in diesem Beitrag zeigen, dass neben dem Red-Hat-Tool Buildah häufig auch noch Podman zum Einsatz kommt. Die beiden Tools arbeiten eng zusammen. Während sich mit Buildah Container und Container-Images erstellen lassen, ist es möglich diese Container mit der Container-Engine Podman zu starten. Podman ist Teil von Red-Hat-Linux, steht aber auch auf anderen Linux-Distributionen zur Verfügung. Das Red-Hat-Tool ist genauso konform mit OCI-Standards, wie Buildah.
Nach der Installation von Podman außerhalb einer Red-Hat-Installation, zum Beispiel mit „sudo apt install podman“, können die Möglichkeiten des Tools mit „podman –help“ angezeigt werden.