Vorbereitung von Multi-Architektur-Images
In diesem Schritt werden wir Multi-Architektur-Images vorbereiten. Multi-Architektur-Images ermöglichen es Ihnen, Images zu erstellen und hochzuladen, die auf verschiedenen Architekturen wie amd64
und arm64
laufen können. Dies ist nützlich für die Bereitstellung von Anwendungen in verschiedenen Umgebungen, einschließlich Cloud-Servern, Edge-Geräten und lokalen Maschinen.
Zunächst müssen wir die experimentellen Funktionen in Docker aktivieren. Dadurch können wir den buildx
-Befehl verwenden, der für das Erstellen von Multi-Architektur-Images erforderlich ist. Wir können dies tun, indem wir die Docker-Konfigurationsdatei erstellen oder ändern.
Öffnen Sie die Docker-Konfigurationsdatei mit nano
:
nano ~/.docker/config.json
Wenn die Datei nicht existiert, wird nano
sie erstellen. Fügen Sie den folgenden Inhalt zur Datei hinzu. Wenn die Datei bereits existiert, fügen Sie die Zeile "experimental": "enabled"
innerhalb des Haupt-JSON-Objekts hinzu.
{
"experimental": "enabled"
}
Speichern Sie die Datei, indem Sie Strg + X
, dann Y
und Enter
drücken.
Als Nächstes müssen wir eine neue Builder-Instanz erstellen, die mehrere Architekturen unterstützt. Eine Builder-Instanz ist eine Docker-Komponente, die den Build-Prozess verwaltet.
Erstellen Sie eine neue Builder-Instanz namens mybuilder
:
docker buildx create --name mybuilder --use
Dieser Befehl erstellt eine neue Builder-Instanz namens mybuilder
und setzt sie als Standard-Builder für nachfolgende Build-Vorgänge. Die Ausgabe sollte anzeigen, dass der Builder erstellt und verwendet wird.
Jetzt erstellen wir ein einfaches Multi-Architektur-Image. Wir verwenden eine einfache Dockerfile
, die ein Image auf Basis von Alpine Linux erstellt.
Erstellen Sie ein Verzeichnis für unser Projekt und navigieren Sie dorthin:
mkdir ~/project/multiarch-demo
cd ~/project/multiarch-demo
Erstellen Sie eine Dockerfile
in diesem Verzeichnis:
nano Dockerfile
Fügen Sie den folgenden Inhalt zur Dockerfile
hinzu:
FROM alpine:latest
CMD ["echo", "Hello from multi-architecture image!"]
Speichern Sie die Dockerfile
, indem Sie Strg + X
, dann Y
und Enter
drücken.
Jetzt erstellen wir das Image für die Architekturen linux/amd64
und linux/arm64
und laden es in ein Test-Registry hoch. Wir verwenden localhost:5000
als Platzhalter für das Registry. In einem realen Szenario würden Sie dies durch Ihre tatsächliche Registry-Adresse ersetzen.
Erstellen und laden Sie das Multi-Architektur-Image hoch:
docker buildx build --platform linux/amd64,linux/arm64 -t localhost:5000/multiarch-demo:latest --push .
Dieser Befehl erstellt das Image für die angegebenen Plattformen (linux/amd64
und linux/arm64
), markiert es als localhost:5000/multiarch-demo:latest
und lädt es in das localhost:5000
-Registry hoch. Die Ausgabe zeigt den Build-Prozess für jede Architektur und den Push-Vorgang an.