"Dive": Ein Tool zum Erkunden von Docker-Images und Layer-Inhalten
(github.com/wagoodman)Tool zum Erkunden von Docker-Images: dive
- Docker-Image-Analyse: Mit dem Befehl
divesowie einem Image-Tag, einer ID oder einem Digest lassen sich Docker-Images analysieren. - Docker-Befehle direkt verwenden: Durch Einrichten eines
aliaskanndivedirekt als Docker-Befehl verwendet werden. - Build auf dem Macbook: Auf einem Macbook, das nur die Docker Container Engine unterstützt, können mit
diveImages gebaut und analysiert werden. - Integration in CI-Pipelines: Mit der Umgebungsvariable
CI=truelassen sich Images ohne UI analysieren und Platzverschwendung minimieren.
Grundfunktionen
- Inhalte von Docker-Images pro Layer anzeigen: Die Inhalte des ausgewählten Layers und die mit den vorherigen Layern zusammengeführten Inhalte lassen sich rechts einsehen.
- Änderungen in jedem Layer anzeigen: Im Dateibaum werden geänderte, modifizierte, hinzugefügte oder gelöschte Dateien angezeigt.
- "Image-Effizienz" schätzen: Schätzt den im Image enthaltenen verschwendeten Speicherplatz und zeigt einen Effizienz-Score sowie verschwendeten Dateispeicher an.
- Schneller Build-/Analyse-Zyklus: Mit dem Befehl
dive build -t some-tag .kann ein Docker-Image gebaut und sofort analysiert werden. - Unterstützung für verschiedene Image-Quellen und Container-Engines: Mit der Option
--sourcekann ausgewählt werden, woher Container-Images bezogen werden.
Installation
- Ubuntu/Debian: Installation von
divemitcurlundapt. - RHEL/Centos: Installation von
divemitcurlundrpm. - Arch Linux: Installation über
pacmanmöglich. - Mac: Homebrew oder MacPorts verwenden oder den Darwin-Build von der Release-Seite herunterladen.
- Windows: Aktuellstes Release herunterladen.
- Go tools: Go-Version 1.10 oder höher erforderlich, Installation mit
go get. - Nix/NixOS: Installation mit
nix-env. - Docker: Image mit
docker pullholen und unter Einbindung der Docker-Socket-Datei ausführen.
CI-Integration
- Umgebungsvariable
CI=truesetzen: Analysiert Docker-Images ohne UI und zeigt Bestehen/Fehlschlagen über den Rückgabecode an. - Regeln über die Datei
.dive-cifestlegen: Kriterien für Bestehen/Fehlschlagen anhand von Effizienz, Menge des verschwendeten Speicherplatzes und dessen Anteil konfigurierbar.
Tastenzuweisungen
- Über verschiedene Tastenzuweisungen lassen sich Layer- und Dateibaum-Ansicht in der UI steuern.
UI-Konfiguration
- Über eine Konfigurationsdatei können verschiedene Optionen angepasst werden, um das Verhalten von
divezu ändern.
GN⁺-Meinung
- Wichtigkeit:
diveist ein sehr nützliches Tool, um die Größe von Docker-Images zu optimieren und Verschwendung zu reduzieren. Das kann zur Senkung von Cloud-Infrastrukturkosten und zu effizienterem Ressourcenmanagement beitragen. - Interessant: Dass sich jede Ebene eines Docker-Images detailliert analysieren und Änderungen visuell nachvollziehen lassen, ist für Entwickler und Systemadministratoren besonders spannend.
- Hilfreich: Durch die Integration von
divein CI/CD-Pipelines lassen sich kontinuierliche Qualitätskontrolle und bessere Effizienz durch automatisierte Image-Analysen fördern.
1 Kommentare
Hacker-News-Kommentare
Crane und die Bibliothek go-containerregistry
Die Nützlichkeit von Dive
Ein verstecktes Merkmal von Dive
Frage nach dem Grund für die Verwendung von GoLang
Die Praxistauglichkeit von Dive
Googles Tool container-diff
Andere großartige TUI-Terminal-Tools
Warum Docker tar-Archive verwendet
Die erstaunliche Wirkung von Dive