Zu Abschnitt

Was ist Buildah?

URL kopieren

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 verwenden, 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

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 alle 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.  

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. Buildah ist ein hilfreiches Tool für alle, die mit Linux-Containern arbeiten. Wenn es um Container und Kubernetes geht, 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.

Weiterlesen

ARTIKEL

Vergleich zwischen Containern und VMs

Linux-Container und virtuelle Maschinen (VMs) sind paketierte Computing-Umgebungen, die verschiedene IT-Komponenten vereinen und vom Rest des Systems isolieren.

ARTIKEL

Was ist Container-Orchestrierung?

Mithilfe der Container-Orchestrierung werden Deployment, Management, Skalierung und Vernetzung von Containern automatisiert.

ARTIKEL

Was ist ein Linux-Container?

Ein Linux-Container besteht aus Prozessen, die vom System isoliert sind und auf einem eigenen Image ausgeführt werden, das alle benötigten Dateien zur Unterstützung der Prozesse bereitstellt.

Mehr über Container erfahren

Produkte

Eine Plattform, die es Ihnen ermöglicht, Unternehmensanwendungen schnell und effizient über die von Ihnen gewünschte Infrastruktur bereitzustellen.

Ressourcen

Training

Kostenloser Trainingskurs

Running Containers with Red Hat Technical Overview

Kostenloser Trainingskurs

Containers, Kubernetes and Red Hat OpenShift Technical Overview

Kostenloser Trainingskurs

Developing Cloud-Native Applications with Microservices Architectures