Website-Suche

Analysieren und Erkunden der Inhalte von Docker-Images


Wie Sie vielleicht schon wissen, ist ein Docker-Container-Image ein leichtgewichtiges, eigenständiges, ausführbares Softwarepaket, das alles enthält, was erforderlich ist, um eine Anwendung auszuführen. Deshalb werden Container-Images von Entwicklern häufig zum Erstellen und Verteilen von Anwendungen verwendet. Wenn Sie neugierig sind, was sich in einem Docker-Image befindet, könnte Ihnen dieser kurze Leitfaden helfen. Heute werden wir lernen, den Inhalt von Docker-Images schichtweise zu analysieren und zu erkunden mit einem Tool namens "Dive".

Durch die Analyse eines Docker-Images können wir mögliche doppelte Dateien über die Schichten hinweg entdecken und sie entfernen, um die Größe des Docker-Images zu reduzieren.

Das Dive-Dienstprogramm ist nicht nur ein Docker-Image-Analyzer, sondern hilft uns auch beim Erstellen eines solchen. Dive ist ein kostenloses Open-Source-Tool, das in der Go-Programmiersprache geschrieben wurde.

Dive in Linux installieren

Holen Sie sich die neueste Version von der Releases-Seite und installieren Sie sie wie unten gezeigt, je nachdem, welche Distribution Sie verwenden.

Wenn Sie Debian oder Ubuntu verwenden, führen Sie die folgenden Befehle aus, um es herunterzuladen und zu installieren.

$ wget https://github.com/wagoodman/dive/releases/download/v0.0.8/dive_0.0.8_linux_amd64.deb
$ sudo apt install ./dive_0.0.8_linux_amd64.deb

Auf RHEL/CentOS:

$ wget https://github.com/wagoodman/dive/releases/download/v0.0.8/dive_0.0.8_linux_amd64.rpm
$ sudo rpm -i dive_0.0.8_linux_amd64.rpm

Es ist im AUR verfügbar, sodass Sie es mit beliebigen AUR-Hilfsprogrammen, zum Beispiel Yay, auf Arch Linux und seinen Varianten installieren können.

$ yay -S dive

Dive kann auch mit dem Linuxbrew-Paketmanager installiert werden.

$ brew tap wagoodman/dive
$ brew install dive

Für andere Installationsmethoden siehe die GitHub-Seite des Projekts, die am Ende dieses Leitfadens angegeben ist.

Analysieren und Erkunden der Inhalte von Docker-Images

Um ein Docker-Image zu analysieren, führen Sie einfach den Befehl dive mit der Docker-„Image-ID“ aus. Sie können die IDs Ihrer Docker-Images mit dem Befehl „sudo docker images“ erhalten.

$ sudo dive ea4c82dcd15a

Hier ist ea4c82dcd15a die Docker-Image-ID.

Der Dive-Befehl analysiert schnell das angegebene Docker-Image und zeigt dessen Inhalte im Terminal an.

Erkunde den Inhalt von Docker-Images mit Dive

Wie Sie im obigen Screenshot sehen können, werden im linken Bereich die Schichten des angegebenen Docker-Images und dessen Details sowie der verschwendete Speicherplatz angezeigt. Im rechten Bereich sind die Inhalte jeder Schicht des angegebenen Docker-Images zu sehen. Sie können zwischen dem linken und rechten Bereich mit der Strg+LEERTASTE-Taste wechseln und mit den PFEIL NACH OBEN/NACH UNTEN-Tasten durch die Verzeichnisstruktur navigieren.

Die Liste der Tastenkombinationen zur Verwendung von "Dive".

  • Strg+Leertaste - Zwischen linkem und rechtem Bereich wechseln,
  • Leertaste - Verzeichnisbaum erweitern/verkleinern,
  • Strg+A - Hinzugefügte Dateien ein-/ausblenden,
  • Ctrl+R - Entfernte Dateien anzeigen/verbergen,
  • Ctrl+M - Geänderte Dateien anzeigen/ausblenden,
  • Strg+U - Unveränderte Dateien anzeigen/ausblenden,
  • Strg+ L - Ebenenänderungen anzeigen,
  • Strg+A - Zeige Ebenenänderungen,
  • Strg+/ - Dateien filtern,
  • Strg+C - Beenden.

Im obigen Beispiel habe ich die Berechtigung „sudo“ verwendet, weil meine Docker-Images im Verzeichnis /var/lib/docker/ gespeichert sind. Wenn Sie sie in Ihrem $HOME-Verzeichnis oder an einem anderen Ort haben, der nicht dem Benutzer „root“ gehört, müssen Sie „sudo“ nicht verwenden.

Sie können auch ein Docker-Image erstellen und mit einem Befehl eine sofortige Analyse durchführen:

$ dive build -t <some-tag>

Für weitere Details sehen Sie sich die unten angegebene GitHub-Seite des Projekts an.

Ressource:

  • Tauche GitHub-Seite