Como ya sabrá, una imagen de contenedor de Docker es un paquete de software ligero, independiente y ejecutable que tiene todo lo necesario para ejecutar una aplicación. Es por eso que los desarrolladores suelen utilizar imágenes de contenedor para crear y distribuir aplicaciones. Si tiene curiosidad por saber qué hay en una imagen de Docker, esta breve guía podría ayudarlo. Hoy vamos a aprender a analizar y explorar el contenido de las imágenes de Docker capa por capa usando una herramienta llamada "Dive" . Al analizar una imagen de Docker, podemos descubrir posibles archivos duplicados en las capas y eliminarlos para reducir el tamaño de la imagen de Docker. La utilidad Dive no es solo un analizador de imágenes Docker, sino que también nos ayuda a construir uno. Dive es una herramienta gratuita de código abierto escrita en Go lenguaje de programación.
Instalando Dive
Obtén la última versión de la página de lanzamientos e instálelo como se muestra a continuación según la distribución que utilice.
Si estás en Debian o Ubuntu , ejecute los siguientes comandos para descargarlo e instalarlo.
$ wget https://github.com/wagoodman/dive/releases/download/v0.0.8/dive_0.0.8_linux_amd64.deb
$ sudo apt install ./dive_0.0.8_linux_amd64.deb
En RHEL/CentOS:
$ wget https://github.com/wagoodman/dive/releases/download/v0.0.8/dive_0.0.8_linux_amd64.rpm
$ sudo rpm -i dive_0.0.8_linux_amd64.rpm
Está disponible en AUR , para que pueda instalar usando cualquier herramienta auxiliar de AUR, por ejemplo, Yay , en Arch Linux y sus variantes.
$ yay -S dive
Dive también se puede instalar usando Linuxbrew administrador de paquetes.
$ brew tap wagoodman/dive
$ brew install dive
Para conocer otros métodos de instalación, consulte la página de GitHub del proyecto que se encuentra al final de esta guía.
Analice y explore el contenido de las imágenes de Docker
Para analizar una imagen de Docker, simplemente ejecute el comando de inmersión con "ID de imagen" de Docker. Puede obtener los ID de sus imágenes Docker usando el comando "sudo docker images".
$ sudo dive ea4c82dcd15a
Aquí, ea4c82dcd15a es la identificación de la imagen de Docker.
El comando Dive analizará rápidamente la imagen Docker dada y mostrará su contenido en la Terminal.
Explore el contenido de las imágenes de Docker
Como puede ver en la captura de pantalla anterior, las capas de la imagen acoplable dada y sus detalles, el espacio desperdiciado se muestran en el panel izquierdo. En el panel derecho, el contenido de cada capa en la imagen de Docker dada. Puede alternar entre el panel izquierdo y derecho usando Ctrl+BARRA ESPACIADORA tecla y ARRIBA/ABAJO teclas de flecha para navegar por el árbol de directorios.
La lista de atajos de teclado para usar "Dive".
- Ctrl+Barra espaciadora - Cambiar entre los paneles izquierdo y derecho,
- Barra espaciadora - Expandir/Contraer árbol de directorios,
Ctrl+A - Mostrar/ocultar archivos agregados,Ctrl+R - Mostrar/ocultar archivos eliminados,Ctrl+M - Mostrar/ocultar archivos modificados,Ctrl+U - Mostrar/ocultar archivos no modificados,Ctrl+L - Mostrar cambios de capa,Ctrl+A - Mostrar cambios de capa,Ctrl+/ - Filtrar archivos,Ctrl+C - Salir.
En el ejemplo anterior, he usado el permiso "sudo", porque mis imágenes de Docker se almacenan en /var/lib/docker/ directorio. Si los tiene en su directorio $HOME o en cualquier lugar que no sea del usuario "raíz", no necesita usar "sudo".
También puede crear una imagen de Docker y realizar un análisis inmediato con un comando:
$ dive build -t <some-tag>
Para obtener más detalles, consulte la página de GitHub del proyecto que figura a continuación.