Docker-Images für Fremdarchitekturen mit Buildx bauen

Die Docker-Erweiterung Buildx erzeugt Docker-Images für mehrere Prozessorarchitekturen in einem Rutsch. Damit baut man etwa Raspi-Images auf einem schnellen PC.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen
Docker-Images für Fremdarchitekturen bauen

(Bild: Albert Hulm)

Lesezeit: 9 Min.
Von
  • Merlin Schumacher
Inhaltsverzeichnis

Software in Docker-Images zu verpacken ist oft die komfortabelste Lösung. Vorbei ist es mit der Eleganz, wenn man Images für unterschiedliche Prozessorarchitekturen bauen muss. Schlimmstenfalls muss man Dockerfiles für mehrere Architekturen vorhalten und diese dann auf echter Hardware übersetzen. Das ist oft langwierig und anfällig für Fehler.

Die in Docker 19.03 enthaltene Erweiterung Buildx löst das Problem auf elegante Weise. Sie wurde entwickelt, um alle Features des vom Moby-Projekt entwickelten namensähnlichen BuildKit zugänglich zu machen. BuildKit ist ein Toolkit zum Bau von Container-Images. Das Toolkit ist dank Parallelisierung erheblich schneller beim Image-Bau als die normale Docker-Engine und außerdem flexibler. Beim Bau von Images für Fremdarchitekturen kommt der Hardware-Emulator Qemu zum Einsatz. Frühere Lösungen für Docker auf Fremdarchitekturen haben bereits auf Qemu gesetzt. Nun braucht man aber keine architekturspezifischen Dockerfiles mehr. Stattdessen erzeugt man mit einem Befehl mehrere Images für die gewünschten Architekturen und lädt sie auf Wunsch auch gleich in den Docker Hub.

Weitere Docker-Themen

Das Bauen von ARM-Images macht auf einem Multi-Core-x86-System erheblich mehr Spaß als auf einem kleinen Raspi. Und man kann endlich in CI/CD-Systemen Docker-Projekte für andere Architekturen übersetzen.Dieser Artikel setzt als Grundlage ein aktuelles Debian Buster mit Docker 19.03 voraus. Pfade für andere Linux-Distributionen, macOS und Windows können variieren. Buildx kann auch mit Docker 18.09 verwendet werden. Die Einrichtung unterscheidet sich dann aber teilweise. Bei anderen Distributionen oder Betriebssystemen kann es sein, dass Sie Buildx als zusätzliches Plug-in herunterladen müssen. Vorerfahrung mit dem Bau von Images für verschiedene Architekturen und Image-Manifesten wie in "Docker auf dem Raspberry Pi" beschrieben ist ebenfalls nötig. Anleitungen zur Einrichtung und alle weiteren Links und Dokumentationen zu diesem Artikel stehen für Sie zum Download bereit.