GEDOPLAN
ContainerCloud ComputingDevOps

Container passend zum Laster: Multi Architecture Images bauen

ContainerCloud ComputingDevOps
hamburg 1096594 640 jpg

Für uns als Java-Spezialisten war es anfänglich ein Schock: Container Images sind plattformabhängig! Baue ich bspw. mit Docker auf meinem Linux-System mit Intel-CPU ein Image, so ist es auf dem Macbook der Kollegin mit ARM-CPU nicht lauffähig. Letztere CPU-Architektur ist derzeit auch in der Cloud im Vormarsch begriffen, so dass Thema „Bauen von Images für mehrere Plattformen“ recht viel Bedeutung erlangt hat.

Grundsätzlich ist es so, dass in einer Container Registry mehrere plattformspezifische Images über ein sog. List Manifest unter einem gemeinsamen Namen zusammengefasst werden können. Beim Herunterladen („Pullen“) von Images bedient sich eine Container Runtime dann mit dem für sie passenden Image.

multi arch image 1 png

Früher musste man zur Erstellung von solchen Multi Architecture Images relativ viele aufwändige Schritte gehen. Das ist seit dem Erscheinen der Docker Build Extension einfacher geworden. Diese Extension integriert sich in den docker-Befehl als Subkommando buildx und ist in der Lage, Images mit Hilfe von Containern zu bauen, in denen die gewünschte Zielplattform emuliert wird.

Als erstes muss einmalig ein passender Builder im Docker Host erzeugt werden:

docker buildx create --name multi-arch-builder

Anschließend können mit Hilfe des neuen Builders Images für mehrere Plattformen gebaut und in einer Registry zu einem Multi Architecture Image zusammengefasst werden:

docker buildx build --platform linux/amd64,linux/arm64 --push -t registry.gedoplan.de/my/image .

Im Beispiel wird ein Image aus einem gedachten Dockerfile im aktuellen Verzeichnis für zwei verschiedene Plattformen gebaut und als Multi Architectiure Image in eine gedachte Container Registry gepusht.

Über Build Args – z. B. TARGETPLATFORM – können im Dockerfile Verzeigungen o.ä. programmiert werden, wenn plattformabhängig unterschiedliche Build-Anweisungen benötigt werden.

Details finden sich in https://docs.docker.com/reference/ und näturlich in unseren Seminaren 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Autor

Diesen Artikel teilen

LinkedIn
Xing

Gibt es noch Fragen?

Fragen beantworten wir sehr gerne! Schreibe uns einfach per Kontaktformular.

Kurse

weitere Blogbeiträge

IT-Training - GEDOPLAN
Jakarta EE (Java EE)

Java Expertenkreis Bielefeld

Das nächste Treffen unseres Java Expertenkreises Bielefeld findet statt am: Termin:       Donnerstag, den 23.08.2012, 18:00-20:00 Uhr Ort:              GEDOPLAN, Stieghorster Str.…

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!