Dans cette étape, nous allons explorer comment Docker gère les images pour différentes plateformes et comment vous pouvez interagir avec elles. Bien que l'idée de « d'enregistrer » explicitement une image dans un environnement pour une plateforme spécifique ne corresponde pas à une commande Docker standard dans le sens où vous pourriez l'entendre. Les images Docker sont souvent multi-architecture, ce qui signifie qu'une seule étiquette d'image peut contenir des variantes pour différentes architectures de processeur (comme amd64
, arm64
, etc.). Lorsque vous téléchargez une image, Docker sélectionne automatiquement la variante appropriée pour l'architecture de votre système.
Le concept de « d'enregistrer » une image dans un environnement pour une plateforme spécifique consiste plutôt à s'assurer que la bonne variante d'image est disponible ou utilisée. Bien que vous n'enregistriez pas explicitement l'image, vous pouvez télécharger des images en spécifiant une plateforme cible.
Démontrons le téléchargement d'une image pour une plateforme spécifique. Nous allons télécharger l'image alpine
, qui est une distribution Linux légère, et spécifier la plateforme arm64
. Même si notre machine virtuelle LabEx est probablement de type amd64
, Docker peut toujours télécharger et stocker des images pour d'autres architectures.
Tout d'abord, téléchargeons l'image alpine
sans spécifier de plateforme pour voir le comportement par défaut.
docker pull alpine
Vous devriez voir une sortie indiquant que l'image est en cours de téléchargement.
Using default tag: latest
latest: Pulling from library/alpine
...
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
Maintenant, listons à nouveau les images pour voir l'image alpine
.
docker images
Vous verrez alpine
dans la liste.
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest ... ... ago ...kB
alpine latest ... ... ago ...MB
Maintenant, essayons de télécharger l'image alpine
spécifiquement pour la plateforme arm64
en utilisant le paramètre --platform
.
docker pull --platform arm64 alpine
Vous verrez une sortie indiquant que la variante arm64
est en cours de téléchargement.
Using default tag: latest
latest: Pulling from library/alpine
...
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
Même si la sortie peut sembler similaire, Docker a téléchargé la variante arm64
. Si vous utilisiez une machine arm64
, cette variante serait la version par défaut. Sur une machine amd64
, vous avez maintenant stocké localement à la fois les variantes amd64
(téléchargement par défaut) et arm64
de l'image alpine:latest
.
Bien que docker images
n'affiche pas explicitement la plateforme de chaque variante d'image listée par défaut, Docker les gère en interne. Lorsque vous exécutez un conteneur, Docker utilisera la variante d'image appropriée pour l'architecture de l'hôte.
Cette étape démontre comment Docker gère les images multi-architecture et comment vous pouvez télécharger explicitement une image pour une plateforme différente en utilisant le paramètre --platform
.