En este paso, exploraremos cómo Docker gestiona las imágenes para diferentes plataformas y cómo puedes interactuar con ellas. Aunque "registrar" explícitamente una imagen en un entorno para una plataforma específica no es un comando estándar de Docker como podrías pensar. Las imágenes de Docker a menudo son multi-arquitectura, lo que significa que una única etiqueta de imagen puede contener variantes para diferentes arquitecturas de CPU (como amd64
, arm64
, etc.). Cuando descargas una imagen, Docker selecciona automáticamente la variante correcta para la arquitectura de tu sistema.
El concepto de "registrar" una imagen en un entorno para una plataforma específica se refiere más a garantizar que la variante correcta de la imagen esté disponible o se utilice. Aunque no la "registras" explícitamente, puedes descargar imágenes especificando una plataforma de destino.
Demostremos cómo descargar una imagen para una plataforma específica. Descargaremos la imagen alpine
, que es una distribución Linux ligera, y especificaremos la plataforma arm64
. Aunque es probable que nuestra máquina virtual de LabEx sea amd64
, Docker todavía puede descargar y almacenar imágenes para otras arquitecturas.
Primero, descarguemos la imagen alpine
sin especificar una plataforma para ver el comportamiento predeterminado.
docker pull alpine
Deberías ver una salida que indique que la imagen se está descargando.
Using default tag: latest
latest: Pulling from library/alpine
...
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
Ahora, listemos las imágenes nuevamente para ver la imagen alpine
.
docker images
Verás alpine
en la lista.
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest ... ... ago ...kB
alpine latest ... ... ago ...MB
Ahora, intentemos descargar la imagen alpine
específicamente para la plataforma arm64
utilizando la opción --platform
.
docker pull --platform arm64 alpine
Verás una salida que indique que se está descargando la variante arm64
.
Using default tag: latest
latest: Pulling from library/alpine
...
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
Aunque la salida puede parecer similar, Docker ha descargado la variante arm64
. Si estuvieras en una máquina arm64
, esta sería la predeterminada. En una máquina amd64
, ahora tienes tanto la variante amd64
(descarga predeterminada) como la arm64
de la imagen alpine:latest
almacenadas localmente.
Si bien docker images
no muestra explícitamente la plataforma de cada variante de imagen en la lista por defecto, Docker las gestiona internamente. Cuando ejecutas un contenedor, Docker utilizará la variante de imagen adecuada para la arquitectura del host.
Este paso demuestra cómo Docker gestiona las imágenes multi-arquitectura y cómo puedes descargar explícitamente una imagen para una plataforma diferente utilizando la opción --platform
.