Cómo usar el comando docker image history para inspeccionar capas de imágenes

DockerDockerBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás a utilizar el comando docker history para inspeccionar las capas de una imagen de Docker. Comprender las capas de imagen y los comandos que las crean es fundamental para depurar y optimizar tus imágenes de Docker.

Comenzarás viendo el historial básico de una imagen, luego explorarás opciones para deshabilitar el truncamiento de la salida y obtener visibilidad completa de los comandos, y utilizarás el modo de salida silenciosa para una vista concisa. Además, aprenderás a formatear la salida del historial utilizando plantillas Go para informes personalizados y cómo mostrar el historial de imágenes construidas para plataformas específicas.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/images("List Images") subgraph Lab Skills docker/inspect -.-> lab-555153{{"Cómo usar el comando docker image history para inspeccionar capas de imágenes"}} docker/pull -.-> lab-555153{{"Cómo usar el comando docker image history para inspeccionar capas de imágenes"}} docker/images -.-> lab-555153{{"Cómo usar el comando docker image history para inspeccionar capas de imágenes"}} end

Ver el historial de una imagen de Docker

En este paso, aprenderás cómo ver el historial de una imagen de Docker. El historial de una imagen muestra las capas que la componen y los comandos que se utilizaron para crear cada capa. Esto es útil para entender cómo se construyó una imagen y para depurar problemas.

Primero, vamos a descargar una imagen de Docker que podamos inspeccionar. Usaremos la imagen ubuntu para este ejemplo.

docker pull ubuntu

Deberías ver una salida que indica que la imagen se está descargando. Una vez que la descarga se complete, puedes ver el historial de la imagen usando el comando docker history seguido del nombre o ID de la imagen.

docker history ubuntu

La salida del comando docker history mostrará una tabla con varias columnas:

  • IMAGE: El ID de la capa de la imagen.
  • CREATED: El momento en que se creó la capa.
  • CREATED BY: El comando que se utilizó para crear la capa.
  • SIZE: El tamaño de la capa.
  • COMMENT: Cualquier comentario asociado con la capa.

Este historial te permite rastrear los pasos seguidos para construir la imagen ubuntu, mostrando cada comando ejecutado y la capa resultante.

Ver el historial sin truncamiento de salida

En el paso anterior, viste el historial de la imagen ubuntu. Probablemente notaste que parte de la salida, especialmente los comandos en la columna CREATED BY, aparecían truncados. Este es el comportamiento predeterminado de docker history para mantener la salida concisa.

Para ver la salida completa sin truncamiento, puedes usar el flag --no-trunc con el comando docker history.

Probemos esto con la imagen ubuntu:

docker history --no-trunc ubuntu

Ahora deberías ver los comandos completos que se utilizaron para crear cada capa de la imagen ubuntu. Esto puede ser muy útil cuando necesitas ver los detalles exactos de cómo se construyó una capa, especialmente para imágenes complejas con comandos de construcción largos.

Compara la salida de este comando con la del paso anterior para notar la diferencia en la columna CREATED BY.

Ver el historial en modo silencioso

En los pasos anteriores, viste el historial detallado de la imagen ubuntu, incluyendo los comandos utilizados para crear cada capa. En ocasiones, puede que solo te interesen los IDs de las imágenes de las capas, sin toda la demás información.

Para ver una salida más concisa que solo muestre los IDs de las imágenes, puedes usar el flag -q o --quiet con el comando docker history.

Veamos el historial de la imagen ubuntu en modo silencioso:

docker history -q ubuntu

La salida ahora solo mostrará los IDs de las imágenes de las capas, uno por línea. Esto puede ser útil cuando necesitas obtener rápidamente una lista de IDs de capas para scripting u otros propósitos.

Compara esta salida con las anteriores para ver cómo el flag -q simplifica la información mostrada.

Formatear la salida del historial usando una plantilla Go

Además de los formatos de salida predeterminado y silencioso, docker history te permite formatear la salida usando una plantilla Go. Esto te da un control detallado sobre qué información se muestra y cómo se presenta.

El flag --format se utiliza para especificar la plantilla Go. Puedes acceder a varios campos del historial de la imagen usando sintaxis de plantilla. Algunos campos comunes incluyen .ID, .Created, .CreatedBy, .Size y .Comment.

Probemos formatear la salida para mostrar solo el ID de la imagen y el comando usado para crear la capa, separados por un tabulador:

docker history --format "{{.ID}}\t{{.CreatedBy}}" ubuntu

En esta plantilla:

  • {{.ID}} se refiere al ID de la imagen de la capa
  • \t es un carácter de tabulación para separación
  • {{.CreatedBy}} se refiere al comando usado para crear la capa

Puedes experimentar con diferentes campos y formatos para obtener la salida que necesites. Por ejemplo, para incluir el tamaño:

docker history --format "{{.ID}}\t{{.Size}}\t{{.CreatedBy}}" ubuntu

El uso de plantillas Go proporciona una forma potente de extraer información específica del historial de imágenes para scripting o propósitos de reporte.

Mostrar el historial para una plataforma específica

Las imágenes de Docker pueden construirse para diferentes arquitecturas y sistemas operativos. Cuando una imagen está disponible para múltiples plataformas, es posible que desees ver el historial para una plataforma específica.

El comando docker history te permite especificar la plataforma objetivo usando el flag --platform. El formato para la plataforma es típicamente os/arquitectura. Por ejemplo, linux/amd64 o linux/arm64.

Veamos el historial de la imagen ubuntu específicamente para la plataforma linux/amd64:

docker history --platform linux/amd64 ubuntu

La salida mostrará el historial de la imagen ubuntu construida para la arquitectura linux/amd64. Si la imagen no está disponible para la plataforma especificada, podrías ver un error o un historial diferente dependiendo de cómo se construyó la imagen.

Esto es particularmente útil cuando trabajas con imágenes multi-arquitectura y necesitas inspeccionar el proceso de construcción para un entorno objetivo específico.

Resumen

En este laboratorio, aprendiste a usar el comando docker history para inspeccionar las capas de una imagen de Docker. Comenzaste descargando la imagen ubuntu y luego visualizando su historial, el cual muestra información sobre cada capa incluyendo el ID de la imagen, el tiempo de creación, el comando utilizado para crearla y su tamaño. Esto proporciona una visión clara del proceso de construcción de la imagen.

Luego exploraste opciones para modificar la salida de docker history. Aprendiste cómo desactivar el truncamiento de la salida usando el flag --no-trunc para ver los comandos completos utilizados en cada capa. Esto es crucial para entender los pasos exactos involucrados en la creación de imágenes. El laboratorio también cubre cómo ver el historial con salida reducida usando el flag -q para mostrar solo los IDs de imagen, formatear la salida con una plantilla Go para vistas personalizadas, y mostrar el historial para una plataforma específica usando el flag --platform.