Wie man den docker scout quickview-Befehl verwendet, um einen Überblick über Images zu erhalten

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie den Befehl docker inspect verwenden können, um einen schnellen Überblick über Docker-Images zu erhalten. Sie werden untersuchen, wie Sie detaillierte Informationen zu einem bestimmten Image erhalten, das zuletzt erstellte Image identifizieren und untersuchen können und wie Sie relevante Daten aus der Ausgabe der Untersuchung mithilfe von Formatierungsoptionen extrahieren. Das Lab führt Sie anhand von praktischen Beispielen mit Beispiel-Images und einer einfachen Dockerfile durch die Vorgehensweise.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/DockerfileGroup(["Dockerfile"]) docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/images("List Images") docker/DockerfileGroup -.-> docker/build("Build Image from Dockerfile") subgraph Lab Skills docker/inspect -.-> lab-555210{{"Wie man den docker scout quickview-Befehl verwendet, um einen Überblick über Images zu erhalten"}} docker/pull -.-> lab-555210{{"Wie man den docker scout quickview-Befehl verwendet, um einen Überblick über Images zu erhalten"}} docker/images -.-> lab-555210{{"Wie man den docker scout quickview-Befehl verwendet, um einen Überblick über Images zu erhalten"}} docker/build -.-> lab-555210{{"Wie man den docker scout quickview-Befehl verwendet, um einen Überblick über Images zu erhalten"}} end

Schnellen Überblick über ein bestimmtes Image erhalten

In diesem Schritt lernen Sie, wie Sie mit dem Befehl docker inspect einen schnellen Überblick über ein bestimmtes Docker-Image erhalten können. Dieser Befehl liefert detaillierte Informationen über ein Docker-Objekt, einschließlich Images, Containern, Volumes und Netzwerken.

Zunächst laden wir ein Beispiel-Image herunter, das wir untersuchen können. Wir verwenden das hello-world-Image, ein sehr kleines Image für Testzwecke.

docker pull hello-world

Sie sollten eine Ausgabe sehen, die anzeigt, dass das Image heruntergeladen wird.

Nachdem wir das Image haben, können wir docker inspect verwenden, um Informationen darüber zu erhalten.

docker inspect hello-world

Dieser Befehl gibt ein großes JSON-Objekt aus, das verschiedene Details über das hello-world-Image enthält, wie z. B. seine ID, das Erstellungsdatum, die Architektur, das Betriebssystem und die Konfiguration.

Um einen schnellen Überblick zu erhalten, interessieren Sie sich möglicherweise für bestimmte Felder in dieser JSON-Ausgabe. Sie können die -f- oder --format-Option mit docker inspect verwenden, um eine Go-Vorlage (Go template) anzugeben, die die Ausgabe formatiert. Beispielsweise können Sie den folgenden Befehl verwenden, um die Image-ID und das Erstellungsdatum anzuzeigen:

docker inspect -f '{{.Id}} {{.Created}}' hello-world

Dieser Befehl gibt die Image-ID gefolgt vom Erstellungszeitstempel aus. Die {{.Id}} und {{.Created}} sind Platzhalter, die sich auf die Id- und Created-Felder in der JSON-Ausgabe von docker inspect beziehen.

Sie können andere Felder in der JSON-Ausgabe des vollständigen docker inspect hello-world-Befehls untersuchen und sie in Ihrem Formatierungsstring verwenden, um die spezifischen Informationen zu erhalten, die Sie benötigen.

Schnellen Überblick über das zuletzt erstellte Image erhalten

In diesem Schritt lernen Sie, wie Sie das zuletzt erstellte Docker-Image identifizieren und einen schnellen Überblick darüber erhalten können. Dies ist nützlich, wenn Sie aktiv Images entwickeln und erstellen und schnell die neueste Version untersuchen möchten.

Zunächst erstellen wir eine einfache Dockerfile, um ein Image zu bauen. Erstellen Sie in Ihrem ~/project-Verzeichnis eine Datei namens Dockerfile mit folgendem Inhalt:

FROM alpine:latest
RUN echo "Hello, Docker!" > /app/message.txt
CMD cat /app/message.txt

Diese Dockerfile verwendet das alpine-Basisimage, fügt eine Datei namens message.txt mit dem Inhalt "Hello, Docker!" hinzu und legt den Befehl fest, um den Inhalt dieser Datei auszugeben, wenn der Container ausgeführt wird.

Nun bauen wir das Docker-Image mit dem Befehl docker build. Wir geben ihm das Tag my-recent-image.

docker build -t my-recent-image .

Das . am Ende des Befehls gibt an, dass sich die Dockerfile im aktuellen Verzeichnis (~/project) befindet. Sie werden eine Ausgabe sehen, die den Build-Prozess anzeigt.

Nachdem der Build abgeschlossen ist, können Sie Ihre Images mit docker images auflisten.

docker images

Sie sollten my-recent-image in der Liste sehen, zusammen mit dem hello-world-Image aus dem vorherigen Schritt und dem alpine-Basisimage. Das zuletzt erstellte Image erscheint normalerweise oben in der Liste oder hat das neueste Erstellungsdatum.

Um einen schnellen Überblick über das zuletzt erstellte Image zu erhalten, können Sie docker images mit Befehlszeilentools wie head und awk kombinieren, um die Image-ID des ersten aufgelisteten Images (das in der Regel das neueste ist) zu extrahieren. Anschließend können Sie docker inspect mit dieser ID verwenden.

docker inspect $(docker images -q | head -n 1)

Lassen Sie uns diesen Befehl analysieren:

  • docker images -q: Dies listet nur die Image-IDs auf.
  • head -n 1: Dies nimmt die erste Zeile der Ausgabe, die die ID des neuesten Images ist.
  • $(...): Dies ist die Befehlssubstitution, die den Befehl in den Klammern ausführt und seine Ausgabe in den äußeren Befehl einsetzt.
  • docker inspect ...: Dies untersucht das Image mit der aus der Befehlssubstitution erhaltenen ID.

Dies gibt die detaillierten JSON-Informationen für das zuletzt erstellte Image aus. Sie können erneut die -f-Option mit docker inspect verwenden, um die Ausgabe nach Bedarf zu formatieren, ähnlich wie im vorherigen Schritt.

Beispielsweise können Sie die ID und das Erstellungsdatum des neuesten Images anzeigen:

docker inspect -f '{{.Id}} {{.Created}}' $(docker images -q | head -n 1)

Dies bietet eine schnelle Möglichkeit, wichtige Informationen über das gerade erstellte Image zu erhalten.

Schnellen Überblick aus einer SPDX-Datei erhalten

In diesem Schritt lernen Sie, wie Sie einen schnellen Überblick über die Softwarekomponenten in einem Docker-Image erhalten können, indem Sie eine SPDX-Datei (Software Package Data Exchange) generieren und untersuchen. SPDX ist ein offener Standard zur Kommunikation von Informationen über Software-Bill-of-Materials (SBOM), einschließlich Komponenten, Lizenzen und Urheberrechten.

Das Generieren einer SPDX-Datei für ein Docker-Image erfordert ein Tool, das die Image-Layer analysieren und die erforderlichen Informationen extrahieren kann. Ein solches Tool ist syft, ein Befehlszeilentool zur Generierung von SBOMs aus Container-Images und Dateisystemen.

Da syft nicht vorinstalliert ist, werden wir es herunterladen und installieren. Wir laden die neueste Version für Linux herunter.

curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sudo bash -s -- -b /usr/local/bin

Dieser Befehl lädt das Installationsskript für syft herunter und führt es mit sudo aus, um die ausführbare Datei in /usr/local/bin zu installieren. Möglicherweise werden Sie nach Ihrem Passwort gefragt, aber der labex-Benutzer hat sudo-Rechte ohne Passwortabfrage.

Nach der Installation können Sie überprüfen, ob syft installiert ist, indem Sie seine Version prüfen:

syft version

Sie sollten die Versionsinformationen für syft sehen.

Nun generieren wir eine SPDX-Datei für das my-recent-image, das wir im vorherigen Schritt erstellt haben. Wir geben das Ergebnis in eine Datei namens my-recent-image.spdx.json im ~/project-Verzeichnis aus.

syft my-recent-image -o spdx-json > ~/project/my-recent-image.spdx.json

Dieser Befehl teilt syft mit, das my-recent-image zu analysieren und die Ergebnisse im SPDX-JSON-Format auszugeben, wobei die Ausgabe in die angegebene Datei umgeleitet wird. Dieser Vorgang kann je nach Größe des Images einen Moment dauern.

Nachdem der Befehl abgeschlossen ist, haben Sie eine SPDX-JSON-Datei, die eine detaillierte Liste der im Image gefundenen Softwarepakete enthält. Sie können den Inhalt dieser Datei mit einem Texteditor wie nano anzeigen:

nano ~/project/my-recent-image.spdx.json

Innerhalb der Datei finden Sie Informationen über das Image selbst und eine Liste der erkannten Pakete, einschließlich ihrer Namen, Versionen und Lizenzen. Dies bietet einen schnellen Überblick über die im Image vorhandenen Softwarekomponenten, ohne dass Sie den Container ausführen oder einzelne Layer manuell untersuchen müssen.

Sie können durch die Datei scrollen, um die verschiedenen Abschnitte und die von ihnen enthaltenen Informationen zu sehen. Suchen Sie nach dem packages-Array, das die erkannten Softwarekomponenten auflistet.

Drücken Sie Ctrl + X, um nano zu beenden.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie mit dem Befehl docker inspect einen schnellen Überblick über Docker-Images erhalten können. Sie haben das Prüfen eines bestimmten Images geübt, indem Sie das hello-world-Image heruntergeladen und docker inspect verwendet haben, um seine detaillierten Informationen im JSON-Format anzuzeigen. Sie haben auch gelernt, wie Sie die -f-Option mit docker inspect und Go-Vorlagen (Go templates) verwenden, um bestimmte Felder wie die Image-ID und das Erstellungsdatum zu extrahieren und zu formatieren, was einen maßgeschneiderten schnellen Überblick ermöglicht.

Darüber hinaus haben Sie untersucht, wie Sie das kürzlich erstellte Docker-Image identifizieren und prüfen können, was besonders nützlich ist, wenn Sie aktiv in der Entwicklung sind. Dies beinhaltete das Verständnis, wie Sie Images auflisten und möglicherweise filtern oder sortieren können, um das neueste Image zur Prüfung zu finden.