Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
dive — Ein Werkzeug zum Erkunden jeder Schicht in einem Docker-Image. | Kitploit
Tools/GitHubGitHub/wagoodman/dive
Allgemeine DienstprogrammeContainer-Sicherheit
GitHubwagoodman/dive

dive

Ein Werkzeug zum Erkunden jeder Schicht in einem Docker-Image.

Repository anzeigen
54.4k2.0kvor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

dive

GitHub release Validations Go Report Card License: MIT Donate

Ein Werkzeug zum Erkunden eines Docker-Images, der Layer-Inhalte und zum Finden von Möglichkeiten, die Größe Ihres Docker/OCI-Images zu reduzieren.

Image

Um ein Docker-Image zu analysieren, führen Sie einfach dive mit einem Image-Tag/ID/Digest aus:

root@kitploit:~
dive <your-image-tag>

oder Sie können dive direkt mit Docker verwenden:

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

# zum Beispiel
dive nginx:latest

oder wenn Sie Ihr Image erstellen und dann direkt analysieren möchten:

root@kitploit:~
dive build -t <some-tag> .

Build auf macOS (Unterstützung nur der Docker-Container-Engine):

root@kitploit:~
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> .

Zusätzlich können Sie dies in Ihrer CI-Pipeline ausführen, um sicherzustellen, dass Sie den verschwendeten Speicherplatz minimieren (dies überspringt die Benutzeroberfläche):

root@kitploit:~
CI=true dive <your-image>

Image

Dies ist Beta-Qualität! Zögern Sie nicht, ein Issue zu melden, wenn Sie eine neue Funktion wünschen oder einen Fehler finden :)

Grundlegende Funktionen

Docker-Image-Inhalte aufgeschlüsselt nach Layer anzeigen

Wenn Sie links einen Layer auswählen, werden Ihnen rechts die Inhalte dieses Layers zusammen mit allen vorherigen Layern angezeigt. Außerdem können Sie den Dateibaum vollständig mit den Pfeiltasten erkunden.

Anzeigen, was sich in jedem Layer geändert hat

Dateien, die geändert, modifiziert, hinzugefügt oder entfernt wurden, werden im Dateibaum angezeigt. Dies kann angepasst werden, um Änderungen für einen bestimmten Layer oder aggregierte Änderungen bis zu diesem Layer anzuzeigen.

Schätzung der „Image-Effizienz“

Im linken unteren Bereich werden grundlegende Layer-Informationen und eine experimentelle Metrik angezeigt, die schätzt, wie viel verschwendeten Speicherplatz Ihr Image enthält. Dies kann durch Duplizieren von Dateien über Layer hinweg, Verschieben von Dateien zwischen Layern oder nicht vollständiges Entfernen von Dateien verursacht werden. Es werden sowohl ein prozentualer „Wert“ als auch der gesamte verschwendete Dateispeicherplatz angegeben.

Schnelle Build-/Analyse-Zyklen

Sie können ein Docker-Image erstellen und mit einem Befehl sofort analysieren: dive build -t some-tag .

Sie müssen lediglich Ihren docker build-Befehl durch denselben dive build-Befehl ersetzen.

CI-Integration

Analysieren Sie ein Image und erhalten Sie ein Bestehen/Nichtbestehen-Ergebnis basierend auf der Image-Effizienz und dem verschwendeten Speicherplatz. Setzen Sie einfach CI=true in der Umgebung, wenn Sie einen gültigen dive-Befehl aufrufen.

Mehrere Image-Quellen und Container-Engines werden unterstützt

Mit der Option --source können Sie auswählen, woher das Container-Image bezogen werden soll:

root@kitploit:~
dive <your-image> --source <source>

oder

root@kitploit:~
dive <source>://<your-image>

Mit den gültigen source-Optionen wie folgt:

  • docker: Docker-Engine (die Standardoption)
  • docker-archive: Ein Docker-Tar-Archiv von der Festplatte
  • podman: Podman-Engine (nur Linux)

Installation

Ubuntu/Debian

Verwendung von debs:

root@kitploit:~
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

Verwendung von snap:

root@kitploit:~
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] Die Snap-Methode wird nicht empfohlen, wenn Sie Docker über apt-get installiert haben, da sie Ihren vorhandenen Docker-Daemon beschädigen könnte.

Siehe auch: https://github.com/wagoodman/dive/issues/546

RHEL/Centos

root@kitploit:~
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

Verfügbar im extra repository und kann über pacman installiert werden:

root@kitploit:~
pacman -S dive

Mac

Wenn Sie Homebrew verwenden:

root@kitploit:~
brew install dive

Wenn Sie MacPorts verwenden:

root@kitploit:~
sudo port install dive

Oder laden Sie den neuesten Darwin-Build von der Releases-Seite herunter.

Windows

Wenn Sie Chocolatey verwenden:

root@kitploit:~
choco install dive

Wenn Sie scoop verwenden:

root@kitploit:~
scoop install main/dive

Wenn Sie winget verwenden:

root@kitploit:~
winget install --id wagoodman.dive

Oder laden Sie den neuesten Windows-Build von der Releases-Seite herunter.

Go-Tools Erfordert Go Version 1.10 oder höher.

root@kitploit:~
go install github.com/wagoodman/dive@latest

Hinweis: Bei einer Installation auf diese Weise sehen Sie bei der Ausführung von dive -v keine ordnungsgemäße Version.

Nix/NixOS

Auf NixOS:

root@kitploit:~
nix-env -iA nixos.dive

Auf Nicht-NixOS (Linux, Mac):

root@kitploit:~
nix-env -iA nixpkgs.dive

X-CMD

x-cmd ist ein Toolbox für Posix Shell, das einen leichten Paketmanager mit Shell und awk bietet.

root@kitploit:~
x env use dive

Docker

root@kitploit:~
docker pull docker.io/wagoodman/dive
# oder alternativ
docker pull ghcr.io/wagoodman/dive

Beim Ausführen müssen Sie die Docker-Socket-Datei einbinden:

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

Docker für Windows (Anzeige von PowerShell-kompatiblen Zeilenumbrüchen; für Kompatibilität mit der Eingabeaufforderung in eine einzelne Zeile umwandeln):

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

Hinweis: Abhängig von der lokal installierten Docker-Version müssen Sie möglicherweise die Docker-API-Version als Umgebungsvariable angeben:

root@kitploit:~
   DOCKER_API_VERSION=1.37 dive ...

oder wenn Sie mit einem Docker-Image ausführen:

root@kitploit:~
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...>

Wenn Sie eine alternative Runtime (Colima usw.) verwenden, müssen Sie möglicherweise den Docker-Host als Umgebungsvariable angeben, um lokale Images zu pullen:

root@kitploit:~
   export DOCKER_HOST=$(docker context inspect -f '{{ .Endpoints.docker.Host }}')

CI-Integration

Wenn Sie dive mit der Umgebungsvariable CI=true ausführen, wird die dive-Benutzeroberfläche umgangen und stattdessen Ihr Docker-Image analysiert, wobei über den Rückgabecode ein Bestehen/Nichtbestehen angezeigt wird. Derzeit werden drei Metriken über eine .dive-ci-Datei unterstützt, die Sie im Stammverzeichnis Ihres Repositorys ablegen können:

root@kitploit:~
rules:
  # Wenn die Effizienz unter X% gemessen wird, als fehlgeschlagen markieren.
  # Ausgedrückt als Verhältnis zwischen 0-1.
  lowestEfficiency: 0.95

  # Wenn die Menge des verschwendeten Speicherplatzes mindestens X oder größer als X ist, als fehlgeschlagen markieren.
  # Ausgedrückt in B, KB, MB und GB.
  highestWastedBytes: 20MB

  # Wenn der verschwendete Speicherplatz X% oder mehr des Images ausmacht, als fehlgeschlagen markieren.
  # Hinweis: Die Basis-Image-Schicht ist NICHT in der Gesamtbildgröße enthalten.
  # Ausgedrückt als Verhältnis zwischen 0-1; schlägt fehl, wenn der Schwellenwert erreicht oder überschritten wird.
  highestUserWastedPercent: 0.20

Sie können den CI-Konfigurationspfad mit der Option --ci-config überschreiben.

Tastenkombinationen

UI-Konfiguration

Es ist keine Konfiguration erforderlich, Sie können jedoch eine Konfigurationsdatei erstellen und Werte überschreiben:

root@kitploit:~
# unterstützte Optionen sind "docker" und "podman"
container-engine: docker
# mit der Analyse fortfahren, auch wenn Fehler beim Parsen des Image-Archivs auftreten
ignore-errors: false
log:
  enabled: true
  path: ./dive.log
  level: info

# Hinweis: Sie können mehrere Bindungen angeben, indem Sie die Werte durch Kommas trennen.
# Hinweis: UI-Hinweise leiten sich von der ersten Bindung ab
keybinding:
  # Globale Bindungen
  quit: strg+c
  toggle-view: tab
  filter-files: strg+f, strg+slash
  close-filter-files: esc
  up: hoch,k
  down: runter,j
  left: links,h
  right: rechts,l

  # Layerspezifische Bindungen
  compare-all: strg+a
  compare-layer: strg+l

  # Dateiansichtsspezifische Bindungen
  toggle-collapse-dir: leertaste
  toggle-collapse-all-dir: strg+leertaste
  toggle-added-files: strg+a
  toggle-removed-files: strg+r
  toggle-modified-files: strg+m
  toggle-unmodified-files: strg+u
  toggle-filetree-attributes: strg+b
  page-up: bildauf,u
  page-down: bildab,d

diff:
  # Sie können die standardmäßig im Dateibaum (rechter Bereich) angezeigten Dateien ändern. Standardmäßig werden alle Diff-Typen angezeigt.
  hide:
    - added
    - removed
    - modified
    - unmodified

filetree:
  # Standardzustand für das Einklappen von Verzeichnissen
  collapse-dir: false

  # Der prozentuale Anteil der Bildschirmbreite, den der Dateibaum einnehmen soll (muss >0 und <1 sein)
  pane-width: 0.5

  # Dateiattribute neben dem Dateibaum anzeigen
  show-attributes: true

layer:
  # Aktiviert die Anzeige aller Änderungen von diesem Layer und jedem vorherigen Layer
  show-aggregated-changes: false

dive sucht nach Konfigurationsdateien an den folgenden Orten:

  • $XDG_CONFIG_HOME/dive/*.yaml
  • $XDG_CONFIG_DIRS/dive/*.yaml
  • ~/.config/dive/*.yaml
  • ~/.dive.yaml

.yml kann anstelle von .yaml verwendet werden, falls gewünscht.

Tool herunterladen
TastenkombinationBeschreibung
Strg + C oder QBeenden
TabZwischen Layer- und Dateibaumansichten wechseln
Strg + FDateien filtern
ESCFilter für Dateien schließen
Bild auf oder UEine Seite nach oben scrollen
Bild ab oder DEine Seite nach unten scrollen
Hoch oder KEine Zeile nach oben innerhalb einer Seite
Runter oder JEine Zeile nach unten innerhalb einer Seite
Strg + ALayer-Ansicht: aggregierte Image-Änderungen anzeigen
Strg + LLayer-Ansicht: aktuelle Layer-Änderungen anzeigen
LeertasteDateibaumansicht: Verzeichnis einklappen/ausklappen
Strg + LeertasteDateibaumansicht: alle Verzeichnisse einklappen/ausklappen
Strg + ADateibaumansicht: hinzugefügte Dateien anzeigen/ausblenden
Strg + RDateibaumansicht: entfernte Dateien anzeigen/ausblenden
Strg + MDateibaumansicht: geänderte Dateien anzeigen/ausblenden
Strg + UDateibaumansicht: unveränderte Dateien anzeigen/ausblenden
Strg + BDateibaumansicht: Dateiattribute anzeigen/ausblenden
Bild auf oder UDateibaumansicht: eine Seite nach oben scrollen
Bild ab oder DDateibaumansicht: eine Seite nach unten scrollen