Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
dive — Una herramienta para explorar cada capa en una imagen Docker. | Kitploit
Herramientas/GitHubGitHub/wagoodman/dive
Utilidades de Propósito GeneralSeguridad de Contenedores
GitHubwagoodman/dive

dive

Una herramienta para explorar cada capa en una imagen Docker.

Ver Repositorio
54.4k2.0k109hace 14 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

dive

GitHub release Validations Go Report Card License: MIT Donate

Una herramienta para explorar una imagen de Docker, el contenido de sus capas y descubrir formas de reducir el tamaño de tu imagen de Docker/OCI.

Image

Para analizar una imagen de Docker, simplemente ejecuta dive con una etiqueta/id/digest de imagen:

dive <your-image-tag>

o puedes sumergirte directamente con Docker:

alias dive="docker run -ti --rm  -v /var/run/docker.sock:/var/run/docker.sock docker.io/wagoodman/dive"
dive <your-image-tag>

# for example
dive nginx:latest

o si quieres construir tu imagen y luego pasar directamente a analizarla:

dive build -t <some-tag> .

Compilación en macOS (con soporte únicamente para el motor de contenedores Docker):

docker run --rm -it \
      -v /var/run/docker.sock:/var/run/docker.sock \
      -v  "$(pwd)":"$(pwd)" \
      -w "$(pwd)" \
      -v "$HOME/.dive.yaml":"$HOME/.dive.yaml" \
      docker.io/wagoodman/dive:latest build -t <some-tag> .

Además, puedes ejecutar esto en tu pipeline de CI para asegurarte de mantener el espacio desperdiciado al mínimo (esto omite la UI):

CI=true dive <your-image>

Image

¡Esto es de calidad beta! No dudes en enviar un issue si quieres una nueva función o encuentras un bug :)

Características básicas

Muestra el contenido de la imagen Docker desglosado por capa

A medida que seleccionas una capa a la izquierda, se muestra el contenido de esa capa combinado con todas las capas anteriores a la derecha. Además, puedes explorar completamente el árbol de archivos con las teclas de flecha.

Indica qué ha cambiado en cada capa

Los archivos que han cambiado, se han modificado, añadido o eliminado se indican en el árbol de archivos. Esto se puede ajustar para mostrar los cambios de una capa específica, o los cambios agregados hasta esa capa.

Estima la "eficiencia de la imagen"

El panel inferior izquierdo muestra información básica de la capa y una métrica experimental que estimará cuánto espacio desperdiciado contiene tu imagen. Esto puede deberse a la duplicación de archivos entre capas, al movimiento de archivos entre capas o a no eliminar completamente los archivos. Se proporciona tanto una "puntuación" porcentual como el espacio total de archivos desperdiciado.

Ciclos rápidos de compilación/análisis

Puedes compilar una imagen Docker y realizar un análisis inmediato con un solo comando: dive build -t some-tag .

Solo necesitas reemplazar tu comando docker build por el mismo comando dive build.

Integración con CI

Analiza una imagen y obtén un resultado de aprobado/reprobado basado en la eficiencia de la imagen y el espacio desperdiciado. Simplemente establece CI=true en el entorno al invocar cualquier comando válido de dive.

Múltiples fuentes de imágenes y motores de contenedores compatibles

Con la opción --source, puedes seleccionar de dónde obtener la imagen del contenedor:

dive <your-image> --source <source>

o prefije la imagen con un esquema <source>://:

dive <source>://<your-image>

Las fuentes basadas en archivos también aceptan la forma <source>:<path> que usan otras herramientas de anchore (p. ej. dive oci-dir:./layout). Para cualquier otra fuente, un solo dos puntos se interpreta como nombre de imagen y etiqueta, por lo que dive docker:dind analiza la imagen docker:dind.

FuenteLee la imagen desde
dockerel motor de Docker (el valor predeterminado). Las imágenes que faltan localmente se descargan a través de la API de docker, con credenciales de tu configuración de docker. Se respetan DOCKER_HOST, DOCKER_CONTEXT y el contexto de docker actual
podmanPodman. En linux se lee directamente el almacén local (no se necesita socket, véase containers-storage, y un nombre corto como myapp también encuentra el localhost/myapp de podman), recurriendo al socket de podman. En macOS se usa el socket de la API de la máquina podman en ejecución (encontrado mediante podman machine inspect); CONTAINER_HOST=unix://... lo sobrescribe, las conexiones ssh se rechazan
docker-archiveun tarball de docker save en disco, o un archivo OCI (docker-tar es un alias)
oci-archiveun tarball de diseño de imagen OCI en disco
oci-dirun directorio de diseño de imagen OCI en disco
registryun registro, sin un motor de contenedores (credenciales de tu configuración de docker). Se rechazan los registros en direcciones IP privadas, ya que se accedería a ellos mediante http sin cifrar
containerdel demonio containerd (CONTAINERD_NAMESPACE selecciona el espacio de nombres)
containers-storageel almacén local de podman/buildah (solo linux, véase más abajo)
autodetectarlo: primero archivos en disco, luego docker, podman, containerd y containers-storage, y después una descarga desde un registro. Se informa la fuente elegida, ya que una imagen que ningún motor local tiene proviene silenciosamente de un registro (Docker Hub para un nombre corto). Solo es válido para --source, no como esquema

Para una imagen multiplataforma, --platform elige la variante a analizar (p. ej. --platform linux/arm64). Un tarball de docker save contiene una sola plataforma; dive lo informa cuando no coincide.

El soporte de containers-storage solo se compila con la etiqueta de compilación containers_image_openpgp, que tienen las compilaciones de la versión de linux (y la imagen de docker). Sin ella, la fuente informa que no está disponible. Para compilarlo tú mismo: go build -tags containers_image_openpgp,exclude_graphdriver_btrfs ./cmd/dive.

Exportación JSON

--json <path> omite la interfaz y escribe el análisis en un archivo. El id de cada capa es el diff ID de la capa (el mismo valor que digestId).

Instalación

Ubuntu/Debian

Usando debs:

DIVE_VERSION=$(curl -sL "https://api.github.com/repos/wagoodman/dive/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
curl -fOL "https://github.com/wagoodman/dive/releases/download/v${DIVE_VERSION}/dive_${DIVE_VERSION}_linux_amd64.deb"
sudo apt install ./dive_${DIVE_VERSION}_linux_amd64.deb

Usando snap:

sudo snap install docker
sudo snap install dive
sudo snap connect dive:docker-executables docker:docker-executables
sudo snap connect dive:docker-daemon docker:docker-daemon

[!CAUTION] El método Snap no se recomienda si instaló Docker mediante apt-get, ya que podría romper su daemon de Docker existente.

Véase también: https://github.com/wagoodman/dive/issues/546

RHEL/Centos

DIVE_VERSION=$(curl -sL "https://api.github.com/repos/wagoodman/dive/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
curl -fOL "https://github.com/wagoodman/dive/releases/download/v${DIVE_VERSION}/dive_${DIVE_VERSION}_linux_amd64.rpm"
rpm -i dive_${DIVE_VERSION}_linux_amd64.rpm

Arch Linux

Descargar herramienta