Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
dive — Uno strumento per esplorare ogni layer in un'immagine Docker | Kitploit
Strumenti/GitHubGitHub/wagoodman/dive
Utilità GenericheSicurezza dei Contenitori
GitHubwagoodman/dive

dive

Uno strumento per esplorare ogni layer in un'immagine Docker

Vedi Repository
54.4k2.0k721 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

dive

GitHub release Validations Go Report Card License: MIT Donate

Uno strumento per esplorare un'immagine Docker, il contenuto dei layer e scoprire modi per ridurre le dimensioni della tua immagine Docker/OCI.

Image

Per analizzare un'immagine Docker, esegui semplicemente dive con un tag/id/digest dell'immagine:

dive <your-image-tag>

oppure puoi usare direttamente dive 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>

# per esempio
dive nginx:latest

oppure se vuoi creare la tua immagine e poi passare direttamente all'analisi:

dive build -t <some-tag> .

Compilazione su macOS (supporta solo il motore contenitori 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> .

Inoltre, puoi eseguirlo nella tua pipeline CI per assicurarti di mantenere al minimo lo spazio sprecato (salta l'interfaccia):

CI=true dive <your-image>

Image

Questa è una versione beta! Sentiti libero di aprire un problema se vuoi una nuova funzionalità o trovi un bug :)

Funzionalità di base

Mostra il contenuto dell'immagine Docker suddiviso per layer

Quando selezioni un layer a sinistra, viene mostrato il contenuto di quel layer combinato con tutti i layer precedenti a destra. Inoltre, puoi esplorare completamente l'albero dei file con i tasti freccia.

Indica cosa è cambiato in ogni layer

I file che sono stati modificati, aggiunti o rimossi vengono indicati nell'albero dei file. Questo può essere regolato per mostrare le modifiche per un layer specifico o le modifiche aggregate fino a questo layer.

Stima dell'"efficienza dell'immagine"

Il pannello in basso a sinistra mostra le informazioni di base del layer e una metrica sperimentale che stima quanto spazio sprecato contiene la tua immagine. Questo potrebbe derivare dalla duplicazione di file tra i layer, dallo spostamento di file tra i layer o dalla rimozione non completa dei file. Vengono forniti sia una percentuale "punteggio" che lo spazio totale sprecato.

Cicli rapidi di build/analisi

Puoi creare un'immagine Docker ed eseguire un'analisi immediata con un solo comando: dive build -t some-tag .

Devi solo sostituire il tuo comando docker build con lo stesso comando dive build.

Integrazione CI

Analizza un'immagine e ottieni un risultato di superato/non superato basato sull'efficienza dell'immagine e sullo spazio sprecato. Basta impostare CI=true nell'ambiente quando si invoca un comando dive valido.

Supporto di più sorgenti di immagini e motori contenitori

Con l'opzione --source, puoi selezionare da dove recuperare l'immagine del contenitore:

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

oppure

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

Con le opzioni source valide:

  • docker: motore Docker (opzione predefinita)
  • docker-archive: un archivio Tar Docker dal disco
  • podman: motore Podman (solo Linux)

Installazione

Ubuntu/Debian

Usando i deb:

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] Il metodo Snap non è consigliato se hai installato Docker tramite apt-get, poiché potrebbe rompere il demone Docker esistente.

Vedi anche: 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

Disponibile nel repository extra e può essere installato tramite pacman:

pacman -S dive

Mac

Se usi Homebrew:

brew install dive

Se usi MacPorts:

sudo port install dive

Oppure scarica l'ultima build Darwin dalla pagina delle release.

Windows

Se usi Chocolatey

choco install dive

Se usi scoop

scoop install main/dive

Se usi winget:

winget install --id wagoodman.dive

Oppure scarica l'ultima build Windows dalla pagina delle release.

Strumenti Go Richiede la versione 1.10 o successiva di Go.

go install github.com/wagoodman/dive@latest

Nota: installando in questo modo non vedrai una versione corretta quando esegui dive -v.

Nix/NixOS

Su NixOS:

nix-env -iA nixos.dive

Su non-NixOS (Linux, Mac)

nix-env -iA nixpkgs.dive

X-CMD

x-cmd è una toolbox per Posix Shell che offre un gestore di pacchetti leggero costruito utilizzando shell e awk.

x env use dive

Docker

docker pull docker.io/wagoodman/dive
# oppure
docker pull ghcr.io/wagoodman/dive

Durante l'esecuzione dovrai includere il file del socket Docker:

docker run --rm -it \
    -v /var/run/docker.sock:/var/run/docker.sock \
    docker.io/wagoodman/dive:latest <dive arguments...>

Docker per Windows (mostra interruzioni di riga compatibili con PowerShell; comprimi in una singola riga per la compatibilità con il prompt dei comandi)

docker run --rm -it `
    -v /var/run/docker.sock:/var/run/docker.sock `
    docker.io/wagoodman/dive:latest <dive arguments...>

Nota: a seconda della versione di Docker che stai utilizzando localmente, potrebbe essere necessario specificare la versione dell'API Docker come variabile d'ambiente:

   DOCKER_API_VERSION=1.37 dive ...

oppure se stai eseguendo con un'immagine Docker:

docker run --rm -it \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -e DOCKER_API_VERSION=1.37 \
    docker.io/wagoodman/dive:latest <dive arguments...>

se stai utilizzando un runtime alternativo (Colima, ecc.) potrebbe essere necessario specificare l'host Docker come variabile d'ambiente per poter estrarre immagini locali:

   export DOCKER_HOST=$(docker context inspect -f '{{ .Endpoints.docker.Host }}')

Integrazione CI

Scarica lo strumento