Herramienta para explorar imágenes de Docker y el contenido de sus capas: 'Dive'
(github.com/wagoodman)Herramienta de exploración de imágenes Docker: dive
- Análisis de imágenes Docker: permite analizar imágenes Docker usando el comando
divejunto con una etiqueta, ID o digest de imagen. - Uso directo como comando de Docker: se puede configurar un
aliaspara usardivedirectamente como si fuera un comando de Docker. - Compilación en Macbook: en Macbook que solo soportan Docker Container Engine, se pueden compilar y analizar imágenes usando
dive. - Integración con pipelines de CI: al configurar la variable de entorno
CI=true, es posible analizar imágenes sin UI y minimizar el desperdicio de espacio.
Funciones básicas
- Mostrar el contenido de la imagen Docker por capa: permite ver a la derecha el contenido de la capa seleccionada y el contenido combinado con las capas anteriores.
- Mostrar los cambios realizados en cada capa: en el árbol de archivos se muestran los archivos modificados, cambiados, agregados o eliminados.
- Estimación de la "eficiencia de la imagen": estima la cantidad de espacio desperdiciado incluido en la imagen y muestra una puntuación de eficiencia junto con el espacio desperdiciado por archivos.
- Ciclo rápido de compilación/análisis: con el comando
dive build -t some-tag .se puede compilar una imagen Docker y analizarla de inmediato. - Soporte para diversas fuentes de imágenes y motores de contenedores: con la opción
--sourcese puede elegir desde dónde obtener la imagen de contenedor.
Cómo instalarlo
- Ubuntu/Debian: instalar
diveusandocurlyapt. - RHEL/Centos: instalar
diveusandocurlyrpm. - Arch Linux: se puede instalar mediante
pacman. - Mac: usar Homebrew o MacPorts, o descargar la compilación de Darwin desde la página de lanzamientos.
- Windows: descargar la versión más reciente.
- Go tools: requiere Go 1.10 o superior; se instala con
go get. - Nix/NixOS: usar
nix-envpara instalarlo. - Docker: obtener la imagen con
docker pully ejecutarla incluyendo el archivo del socket de Docker.
Integración con CI
- Configurar la variable de entorno
CI=true: analiza imágenes Docker sin UI y devuelve el resultado de aprobación/fallo mediante el código de retorno. - Configurar reglas mediante el archivo
.dive-ci: permite definir criterios de aprobación/fallo según la eficiencia, la cantidad de espacio desperdiciado y su proporción.
Asignación de teclas
- Es posible manipular las vistas de capas y del árbol de archivos dentro de la UI mediante varias combinaciones de teclas.
Configuración de la UI
- Mediante el archivo de configuración se pueden personalizar varias opciones para cambiar el comportamiento de
dive.
Opinión de GN⁺
- Importancia:
divees una herramienta muy útil para optimizar el tamaño de las imágenes Docker y reducir el desperdicio. Esto puede contribuir a bajar costos de infraestructura en la nube y a una gestión más eficiente de los recursos. - Interés: la posibilidad de analizar en detalle cada capa de una imagen Docker y revisar visualmente los cambios resulta muy interesante para desarrolladores y administradores de sistemas.
- Utilidad: al integrar
diveen un pipeline de CI/CD, se puede impulsar un control continuo de calidad y mejoras de eficiencia mediante el análisis automatizado de imágenes.
1 comentarios
Opiniones en Hacker News
Crane y la biblioteca go-containerregistry
La utilidad de Dive
Una característica oculta de Dive
Pregunta sobre por qué usar GoLang
La practicidad de Dive
La herramienta container-diff de Google
bashy ver qué harán en el sistema.Otras excelentes herramientas TUI de terminal
Por qué Docker usa archivos tar
El efecto sorprendente de Dive