Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 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.0k109vor 14 TagenVon 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 Entdecken von Möglichkeiten, die Größe Ihres Docker/OCI-Images zu verringern.

Image

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

dive <your-image-tag>

oder du kannst direkt mit Docker eintauchen:

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

oder wenn Sie Ihr Image erstellen und dann direkt mit der Analyse beginnen möchten:

dive build -t <some-tag> .

Auf macOS bauen (unterstützt nur die Docker-Container-Engine):

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 verschwendeten Speicherplatz auf ein Minimum beschränken (dies überspringt die UI):

CI=true dive <your-image>

Image

Dies ist Beta-Qualität! Zögern Sie nicht, ein Issue einzureichen, wenn Sie ein neues Feature wünschen oder einen Fehler finden :)

Grundlegende Funktionen

Inhalt des Docker-Images nach Layer aufgeschlüsselt anzeigen

Wenn Sie links einen Layer auswählen, wird rechts der Inhalt 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

Geänderte, modifizierte, hinzugefügte oder entfernte Dateien werden im Dateibaum gekennzeichnet. Dies kann so angepasst werden, dass Änderungen für einen bestimmten Layer oder aggregierte Änderungen bis zu diesem Layer angezeigt werden.

„Image-Effizienz“ schätzen

Der untere linke Bereich zeigt grundlegende Layer-Informationen und eine experimentelle Metrik, die schätzt, wie viel verschwendeter Speicherplatz in Ihrem Image enthalten ist. Dies kann durch duplizierte Dateien über Layer hinweg, das Verschieben von Dateien zwischen Layern oder nicht vollständig entfernte Dateien verursacht werden. Es werden sowohl ein prozentualer „Score“ als auch der gesamte verschwendete Dateispeicherplatz angegeben.

Schnelle Build-/Analysezyklen

Sie können ein Docker-Image erstellen und mit einem einzigen 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 Bestanden/Nicht-bestanden-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 unterstützte Container-Engines

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

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

oder stellen Sie dem Bild ein <source>://-Schema voran:

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

Die dateibasierten Quellen verwenden ebenfalls die Form <source>:<path>, die auch andere anchore-Tools nutzen (z. B. dive oci-dir:./layout). Bei jeder anderen Quelle wird ein einzelner Doppelpunkt als Image-Name und Tag gelesen, sodass dive docker:dind das Image docker:dind analysiert.

QuelleLiest das Image aus
dockerder Docker-Engine (der Standard). Lokal fehlende Images werden über die Docker-API gepullt, mit Anmeldedaten aus deiner Docker-Konfiguration. DOCKER_HOST, DOCKER_CONTEXT und der aktuelle Docker-Kontext werden berücksichtigt
podmanPodman. Unter Linux wird der lokale Speicher direkt gelesen (kein Socket nötig, siehe containers-storage, und ein Kurzname wie myapp findet auch podmans localhost/myapp), mit Rückfall auf den Podman-Socket. Unter macOS wird der API-Socket der laufenden Podman-Maschine verwendet (ermittelt über podman machine inspect); CONTAINER_HOST=unix://... überschreibt dies, SSH-Verbindungen werden abgelehnt
docker-archiveein docker save-Tarball auf der Festplatte oder ein OCI-Archiv (docker-tar ist ein Alias)
oci-archiveein OCI-Image-Layout-Tarball auf der Festplatte
oci-direin OCI-Image-Layout-Verzeichnis auf der Festplatte
registryeine Registry, ohne Container-Engine (Anmeldedaten aus deiner Docker-Konfiguration). Registries auf privaten IP-Adressen werden abgelehnt, da sie über einfaches HTTP erreicht würden
containerdder containerd-Daemon (CONTAINERD_NAMESPACE wählt den Namespace)
containers-storageder lokale Podman-/Buildah-Speicher (nur Linux, siehe unten)
autoautomatisch erkennen: zuerst Dateien auf der Festplatte, dann docker, podman, containerd und containers-storage, dann ein Registry-Pull. Die gewählte Quelle wird gemeldet, da ein Image, das keine lokale Engine hat, stillschweigend aus einer Registry stammt (Docker Hub bei einem Kurznamen). Nur gültig für --source, nicht als Schema

Bei einem Multi-Platform-Image wählt --platform die zu analysierende Variante (z. B. --platform linux/arm64). Ein docker save- Tarball enthält eine einzelne Plattform; dive meldet, wenn sie nicht übereinstimmt.

Die containers-storage-Unterstützung wird nur mit dem Build-Tag containers_image_openpgp einkompiliert, den die Linux- Release-Builds (und das Docker-Image) haben. Ohne ihn meldet die Quelle, dass sie nicht verfügbar ist. Um sie selbst zu bauen: go build -tags containers_image_openpgp,exclude_graphdriver_btrfs ./cmd/dive.

JSON-Export

--json <path> überspringt die UI und schreibt die Analyse in eine Datei. Die id jeder Ebene ist die Diff-ID der Ebene (derselbe Wert wie digestId).

Installation

Ubuntu/Debian

Mit 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

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

Siehe auch: 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

Tool herunterladen