In diesem Schritt werden wir untersuchen, wie Docker Images für verschiedene Plattformen verarbeitet und wie Sie mit ihnen interagieren können. Obwohl das explizite "Aufzeichnen" eines Images für eine bestimmte Plattform in einer Umgebung nicht wie erwartet ein Standard-Docker-Befehl ist. Docker-Images sind oft multi-architektonisch, was bedeutet, dass ein einzelnes Image-Tag Varianten für verschiedene CPU-Architekturen enthalten kann (z. B. amd64
, arm64
usw.). Wenn Sie ein Image herunterladen, wählt Docker automatisch die richtige Variante für die Architektur Ihres Systems aus.
Das Konzept des "Aufzeichnens" eines Images für eine bestimmte Plattform in einer Umgebung bezieht sich eher darauf, sicherzustellen, dass die richtige Image-Variante verfügbar oder verwendet wird. Obwohl Sie es nicht explizit "aufzeichnen", können Sie Images herunterladen und dabei eine Zielplattform angeben.
Lassen Sie uns das Herunterladen eines Images für eine bestimmte Plattform demonstrieren. Wir werden das alpine
-Image herunterladen, eine leichte Linux-Distribution, und die arm64
-Plattform angeben. Auch wenn unsere LabEx-VM wahrscheinlich amd64
ist, kann Docker dennoch Images für andere Architekturen herunterladen und speichern.
Zunächst laden wir das alpine
-Image ohne Angabe einer Plattform herunter, um das Standardverhalten zu sehen.
docker pull alpine
Sie sollten eine Ausgabe sehen, die anzeigt, dass das Image heruntergeladen wird.
Using default tag: latest
latest: Pulling from library/alpine
...
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
Jetzt lassen wir uns die Images erneut auflisten, um das alpine
-Image zu sehen.
docker images
Sie werden alpine
in der Liste sehen.
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest ... ... ago ...kB
alpine latest ... ... ago ...MB
Jetzt versuchen wir, das alpine
-Image speziell für die arm64
-Plattform mit der Option --platform
herunterzuladen.
docker pull --platform arm64 alpine
Sie werden eine Ausgabe sehen, die anzeigt, dass die arm64
-Variante heruntergeladen wird.
Using default tag: latest
latest: Pulling from library/alpine
...
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
Auch wenn die Ausgabe ähnlich aussehen mag, hat Docker die arm64
-Variante heruntergeladen. Wenn Sie auf einem arm64
-Rechner wären, wäre dies die Standardvariante. Auf einem amd64
-Rechner haben Sie jetzt sowohl die amd64
- (Standard-Herunterladung) als auch die arm64
-Variante des alpine:latest
-Images lokal gespeichert.
Obwohl docker images
standardmäßig nicht explizit die Plattform jeder aufgelisteten Image-Variante anzeigt, verwaltet Docker diese intern. Wenn Sie einen Container starten, wird Docker die geeignete Image-Variante für die Architektur des Hosts verwenden.
Dieser Schritt zeigt, wie Docker multi-architektonische Images verarbeitet und wie Sie ein Image für eine andere Plattform explizit mit der Option --platform
herunterladen können.