Visualizando la Jerarquía de Imágenes

Docker proporciona múltiples comandos para aprender sobre sus imágenes en un formato textual. Sin embargo, una imagen vale más que mil palabras, por lo que es fundamental que podamos visualizar la jerarquía de imágenes a través de gráficos. Aunque Docker no admite ninguna herramienta de visualización de imágenes, existen numerosas soluciones para visualizar la jerarquía de imágenes. En esta receta, visualizaremos la jerarquía de imágenes utilizando un contenedor nate/dockviz y Graphviz.

Preparación

Antes de comenzar, necesitamos una o más imágenes de Docker en el host para ejecutar un demonio de Docker. También debemos asegurarnos de que Graphviz esté instalado.

Cómo hacerlo…

Ejecuta el contenedor nate/dockviz suministrando images --dot como argumento de línea de comandos y canaliza la salida al comando dot (Graphviz), como se muestra en el siguiente código, para generar la jerarquía de imágenes:

$ docker run --rm \
                 -v /var/run/docker.sock:/var/run/docker.sock \
                 nate/dockviz \
                 images --dot  | dot -Tpng -o images-graph.png

A continuación, se muestra una vista gráfica de las imágenes en el host de Docker:

Diagrama

Aquí, en la vista gráfica, los nodos con <missing> son capas dentro de una imagen.

Cómo funciona…

La herramienta nate/dockviz está escrita en go y itera a través de los metadatos de las imágenes de Docker y genera una salida de puntos Graphviz que se convierte en una imagen png utilizando Graphviz.

Hay más…

También puedes utilizar nate/dockviz para visualizar la dependencia entre contenedores enlazados. A continuación, se muestra el comando para visualizar las dependencias de los contenedores:

$ docker run --rm \
                 -v /var/run/docker.sock:/var/run/docker.sock \
                 nate/dockviz \
                 containers --dot  | dot -Tpng -o containers-graph.png

Ver también

  • La documentación sobre nate/dockerviz:

https://github.com/justone/dockviz