Von Docker zu Buildah – Cheatsheet

Von:
Datum: 28. Mai 2021

ContainerD und Buildah sind zwei Tools, welche Docker ablösen sollen. Docker hatte einige Security Probleme, welche so nicht lösbar waren, weshalb eine Umstellung auf eine andere Laufzeitumgebung notwendig wurde.

Docker durch Buildah & ContainerD ersetzen - Referenz

Da Docker weitere Funktionalitäten mitbringt, wie das Erstellen von neuen Containern, und diese Aufgabe nicht von ContainerD erfüllt wird, brauchte es ein weiteres Tool – Buildah. Für beiden Tools findet Ihr unten ein entsprechendes Cheatsheet, welches euch beim Einstieg bzw. Migration hin zu Buildah und ContainerD hilft. Ein Blick auf die Kommandos, sowie die einzelnen Optionen zeigt schnell, dass es einige Schwächen auf der Seite von ContainerD gibt. ContainerD ist aufgrund seiner Struktur schwieriger zu bedienen als Docker.

Einige Befehle, sowie gesamte Funktionen von Docker werden von ContainerD nicht 1 zu 1 angeboten. Hinzu kommt, dass ContainerD und Buildah aktuell nur auf Linux Systemen zur Verfügung stehen. Dies lässt aus meiner Sicht nur einen Schluss zu, die beiden neuen Tool sind hauptsächlich dazu konzipiert Docker auf produktiven Umgebungen zu ersetzen, und dort vorhandene Sicherheitslücken zu schließen. Dazu bedarf es keiner benutzerfreundlichen Bedienung, da ContainerD als Bestandteil von Kubernetes gedacht ist, und nicht vom Benutzer direkt verwendet wird.

Lokal auf einem Entwicklersystem kann weiterhin Docker verwendet werden, um Images zu erstellen und testweise auszuführen. Das Kommando „buildah bud“ bietet die Option bisherige und auch neue Dockerfiles zu bauen. Hinzu kommt, dass mit dieser Aufteilung von Build und Laufzeitumgebung jetzt die Möglichkeit besteht auf einem CI Server alles nötige bereit zu stellen, um einen Container zu bauen, gleichzeitig aber die Option vorenthält, ein solches Image auszuführen.