Introducción
En este laboratorio, aprenderás cómo gestionar las listas de manifiestos de Docker, que son esenciales para crear imágenes multi-arquitectura. Cubriremos el proceso de creación de una lista de manifiestos combinando imágenes para diferentes plataformas, verificaremos su existencia utilizando el comando docker manifest inspect y, finalmente, demostraremos cómo eliminar una lista de manifiestos utilizando el comando docker manifest rm. Este ejercicio práctico te proporcionará experiencia práctica en el manejo de listas de manifiestos dentro de tu flujo de trabajo de Docker.
Crear una lista de manifiestos
En este paso, aprenderemos cómo crear una lista de manifiestos en Docker. Una lista de manifiestos es una lista de manifiestos de imágenes, que te permite utilizar un solo nombre de imagen para referirte a imágenes de diferentes arquitecturas y sistemas operativos. Esto es especialmente útil para construir imágenes multi-arquitectura.
Primero, vamos a descargar dos imágenes diferentes que utilizaremos para crear nuestra lista de manifiestos. Utilizaremos la imagen alpine para las arquitecturas amd64 y arm64.
docker pull alpine:latest
docker pull --platform arm64 alpine:latest
El primer comando descarga la imagen alpine:latest para tu arquitectura actual (probablemente amd64). El segundo comando descarga explícitamente la imagen alpine:latest para la arquitectura arm64.
Ahora, podemos crear la lista de manifiestos utilizando el comando docker manifest create. La sintaxis es docker manifest create TARGET_IMAGE SOURCE_IMAGE [SOURCE_IMAGE...]. Crearemos una lista de manifiestos llamada my-alpine:latest que incluya las imágenes alpine:latest para amd64 y arm64.
docker manifest create my-alpine:latest alpine:latest alpine:latest --amend alpine:latest --platform arm64
En este comando:
my-alpine:latestes el nombre de la nueva lista de manifiestos que estamos creando.alpine:latestes la primera imagen de origen (para la arquitectura predeterminada).--amend alpine:latest --platform arm64agrega la imagenalpine:latestpara la plataformaarm64a la lista de manifiestos.
Después de ejecutar este comando, has creado una lista de manifiestos localmente. Sin embargo, aún no se ha enviado a un registro. Lo enviaremos en un paso posterior.
Verificar que la lista de manifiestos exista
En el paso anterior, creamos una lista de manifiestos llamada my-alpine:latest. Ahora, verificaremos que esta lista de manifiestos se haya creado correctamente y exista localmente.
Podemos utilizar el comando docker manifest inspect para ver los detalles de una lista de manifiestos. Este comando mostrará el contenido de la lista de manifiestos en formato JSON si existe.
docker manifest inspect my-alpine:latest
Si la lista de manifiestos my-alpine:latest se creó correctamente, verás una salida en formato JSON que describe la lista de manifiestos, incluyendo las diferentes imágenes a las que hace referencia para varias arquitecturas. Si la lista de manifiestos no existe, el comando devolverá un error.
La salida mostrará información sobre la lista de manifiestos, como la versión del esquema, el tipo de medio y una lista de manifiestos para cada arquitectura incluida. Deberías ver entradas para las arquitecturas amd64 y arm64, lo que confirma que la lista de manifiestos se creó correctamente con referencias a las imágenes para esas plataformas.
Eliminar la lista de manifiestos
En los pasos anteriores, creamos y verificamos la existencia de una lista de manifiestos llamada my-alpine:latest. Ahora, aprenderemos cómo eliminar esta lista de manifiestos.
Para eliminar una lista de manifiestos, utilizamos el comando docker manifest rm seguido del nombre de la lista de manifiestos.
docker manifest rm my-alpine:latest
Este comando eliminará la referencia local a la lista de manifiestos my-alpine:latest. Ten en cuenta que este comando solo elimina la lista de manifiestos en sí, no las imágenes individuales a las que hace referencia la lista de manifiestos. Las imágenes alpine:latest para amd64 y arm64 que descargamos anteriormente seguirán en tu sistema.
Después de ejecutar el comando, deberías ver una salida que indique que la lista de manifiestos ha sido desetiquetada.
Verificar que la lista de manifiestos se haya eliminado
En el paso anterior, eliminamos la lista de manifiestos llamada my-alpine:latest. Ahora, verificaremos que la lista de manifiestos se haya eliminado correctamente y ya no exista localmente.
Podemos intentar inspeccionar la lista de manifiestos nuevamente utilizando el comando docker manifest inspect. Si la lista de manifiestos se eliminó correctamente, este comando debería devolver un error que indique que no se encontró la lista de manifiestos.
docker manifest inspect my-alpine:latest
Cuando ejecutes este comando después de eliminar la lista de manifiestos, deberías ver un mensaje de error similar a no such manifest: docker.io/library/my-alpine:latest. Esto confirma que la lista de manifiestos se ha eliminado de tu entorno local de Docker.
Resumen
En este laboratorio, aprendimos cómo crear y gestionar listas de manifiestos de Docker. Comenzamos descargando imágenes para diferentes arquitecturas y luego utilizamos el comando docker manifest create para combinarlas en una única lista de manifiestos, demostrando cómo construir imágenes multi-arquitectura.
Después de la creación, verificamos la existencia de la lista de manifiestos utilizando el comando docker manifest inspect. Finalmente, aprendimos cómo eliminar la lista de manifiestos utilizando el comando docker manifest rm y confirmamos su eliminación, cubriendo la gestión esencial del ciclo de vida de las listas de manifiestos en Docker.



