Wie man den docker container inspect Befehl verwendet, um Container-Details anzuzeigen

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, um detaillierte Informationen über Docker-Container anzuzeigen. Sie werden untersuchen, wie Sie sowohl laufende als auch gestoppte Container inspizieren, das standardmäßige JSON-Ausgabeformat verstehen und entdecken, wie Sie die Ausgabe mit einer Go-Vorlage für angepasste Ansichten formatieren. Zusätzlich lernen Sie, wie Sie Größeninformationen von Containern mit dem docker inspect-Befehl anzeigen können.

Durch praktische Übungen sammeln Sie Erfahrung in der Verwendung von docker inspect, um wertvolle Konfigurations-, Zustands- und Netzwerkdetails abzurufen, was für die Fehlerbehebung und Verwaltung Ihrer Docker-Umgebung unerlässlich ist.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/stop("Stop Container") docker/ContainerOperationsGroup -.-> docker/rm("Remove Container") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") subgraph Lab Skills docker/run -.-> lab-555110{{"Wie man den docker container inspect Befehl verwendet, um Container-Details anzuzeigen"}} docker/ps -.-> lab-555110{{"Wie man den docker container inspect Befehl verwendet, um Container-Details anzuzeigen"}} docker/stop -.-> lab-555110{{"Wie man den docker container inspect Befehl verwendet, um Container-Details anzuzeigen"}} docker/rm -.-> lab-555110{{"Wie man den docker container inspect Befehl verwendet, um Container-Details anzuzeigen"}} docker/inspect -.-> lab-555110{{"Wie man den docker container inspect Befehl verwendet, um Container-Details anzuzeigen"}} end

Einen laufenden Container inspizieren

In diesem Schritt lernen Sie, wie Sie einen laufenden Docker-Container inspizieren. Der Befehl docker inspect liefert detaillierte Informationen über einen Container, einschließlich seiner Konfiguration, Netzwerkeinstellungen und seines Zustands.

Zuerst starten wir einen einfachen Container, der aktiv bleibt. Wir verwenden das ubuntu-Image und führen einen Befehl aus, der den Container am Laufen hält.

docker run -d --name my-running-container ubuntu sleep infinity

In dem obigen Befehl:

  • docker run: Dieser Befehl wird verwendet, um einen neuen Container zu starten.
  • -d: Dieses Flag führt den Container im Detached-Modus aus, d.h. er läuft im Hintergrund.
  • --name my-running-container: Weist dem Container einen Namen zu, um ihn leichter referenzieren zu können.
  • ubuntu: Dies ist das verwendete Image. Falls es lokal nicht verfügbar ist, lädt Docker es herunter.
  • sleep infinity: Dieser Befehl wird im Container ausgeführt und hält ihn unbegrenzt aktiv.

Nun, da der Container läuft, können wir ihn inspizieren. Verwenden Sie den Befehl docker inspect gefolgt vom Containernamen.

docker inspect my-running-container

Dieser Befehl gibt ein großes JSON-Objekt mit allen Details über my-running-container aus. Sie können durch die Ausgabe scrollen, um verschiedene Abschnitte wie Id, State, Config, NetworkSettings usw. zu sehen.

Um die Ausgabe besser lesbar zu machen oder spezifische Informationen zu extrahieren, können Sie die Ausgabe an Tools wie jq (ein leichtgewichtiger und flexibler Kommandozeilen-JSON-Prozessor) weiterleiten. In diesem Lab konzentrieren wir uns jedoch auf den grundlegenden docker inspect-Befehl.

Nach der Inspektion des Containers können Sie ihn anhalten und entfernen, um Ihre Umgebung aufzuräumen.

docker stop my-running-container
docker rm my-running-container
  • docker stop my-running-container: Dieser Befehl stoppt den laufenden Container.
  • docker rm my-running-container: Dieser Befehl entfernt den gestoppten Container.

Einen gestoppten Container inspizieren

In diesem Schritt lernen Sie, dass Sie auch Container inspizieren können, die aktuell nicht laufen. Der Befehl docker inspect funktioniert sowohl mit laufenden als auch gestoppten Containern und ermöglicht den Zugriff auf deren Konfiguration und letzten Zustand.

Zuerst starten wir einen einfachen Container, der nach kurzer Zeit beendet wird.

docker run --name my-stopped-container ubuntu sleep 5

In diesem Befehl:

  • docker run: Startet einen neuen Container.
  • --name my-stopped-container: Weist dem Container einen Namen zu.
  • ubuntu: Das zu verwendende Image.
  • sleep 5: Der im Container ausgeführte Befehl, der dazu führt, dass er nach 5 Sekunden beendet wird.

Warten Sie einige Sekunden, bis der Container den sleep 5-Befehl ausgeführt hat und stoppt. Sie können überprüfen, ob der Container gestoppt wurde, indem Sie alle Container (einschließlich gestoppter) mit docker ps -a auflisten.

docker ps -a

Sie sollten my-stopped-container in der Liste sehen mit einem Status, der anzeigt, dass er beendet wurde.

Nun können Sie den gestoppten Container mit dem docker inspect-Befehl inspizieren, genau wie Sie es mit dem laufenden Container im vorherigen Schritt getan haben.

docker inspect my-stopped-container

Sie erhalten wieder eine detaillierte JSON-Ausgabe. Beachten Sie, dass der Abschnitt State Informationen über den Exit-Status des Containers und den Zeitpunkt seiner Beendigung anzeigt.

Die Inspektion gestoppter Container ist nützlich für Debugging-Zwecke oder um zu verstehen, warum ein Container beendet wurde.

Abschließend bereinigen Sie den gestoppten Container.

docker rm my-stopped-container

Inspect-Ausgabe als JSON formatieren

In diesem Schritt lernen Sie, wie Sie die Ausgabe des docker inspect-Befehls speziell als JSON-Array formatieren. Dies ist besonders nützlich, wenn Sie mehrere Objekte (wie Container oder Images) gleichzeitig inspizieren, da es eine strukturierte Ausgabe liefert, die von anderen Tools oder Skripten leicht verarbeitet werden kann.

Zuerst starten wir zwei einfache Container, die aktiv bleiben.

docker run -d --name container1 ubuntu sleep infinity
docker run -d --name container2 ubuntu sleep infinity

Nun inspizieren wir beide Container und formatieren die Ausgabe als JSON-Array. Dies erreichen wir, indem wir dem docker inspect-Befehl mehrere Containernamen übergeben.

docker inspect container1 container2

Die Ausgabe wird ein einzelnes JSON-Array sein, das die Inspektionsdetails für beide Container (container1 und container2) enthält. Jedes Element im Array ist das JSON-Objekt für einen einzelnen Container.

Dieses Format ist die Standardausgabe bei der Inspektion mehrerer Objekte. Es ist eine gängige Methode, um eine Liste strukturierter Daten darzustellen.

Nach der Inspektion stoppen und entfernen wir die Container.

docker stop container1 container2
docker rm container1 container2

Inspect-Ausgabe mit Go-Templates formatieren

In diesem Schritt lernen Sie, wie Sie Go-Templates verwenden können, um die Ausgabe des docker inspect-Befehls zu formatieren. Dies ermöglicht es Ihnen, spezifische Informationen aus der detaillierten JSON-Ausgabe zu extrahieren und in einem benutzerdefinierten Format anzuzeigen.

Zuerst starten wir einen Container, der aktiv bleibt.

docker run -d --name my-templated-container ubuntu sleep infinity

Nun inspizieren wir diesen Container und verwenden ein Go-Template, um nur seine IP-Adresse anzuzeigen. Die IP-Adresse befindet sich im Feld NetworkSettings.IPAddress der Inspect-Ausgabe.

docker inspect --format '{{.NetworkSettings.IPAddress}}' my-templated-container

In diesem Befehl:

  • --format '{{.NetworkSettings.IPAddress}}': Dieses Flag gibt das Format mit einem Go-Template an.
    • {{...}}: Diese doppelten geschweiften Klammern kennzeichnen eine Aktion im Go-Template.
    • .: Repräsentiert das zu inspizierende Root-Objekt (den Container).
    • NetworkSettings: Greift auf das NetworkSettings-Feld innerhalb des Root-Objekts zu.
    • IPAddress: Greift auf das IPAddress-Feld innerhalb des NetworkSettings-Objekts zu.

Die Ausgabe dieses Befehls wird nur die IP-Adresse des Containers sein.

Sie können Go-Templates verwenden, um verschiedene Informationen zu extrahieren. Zum Beispiel, um den Namen und die ID des Containers zu erhalten:

docker inspect --format 'Name: {{.Name}}, ID: {{.Id}}' my-templated-container

Dies gibt etwa folgendes aus: Name: /my-templated-container, ID: <container_id>.

Go-Templates bieten leistungsfähige Formatierungsmöglichkeiten, einschließlich bedingter Anweisungen, Schleifen und Funktionen. In diesem einfachen Beispiel greifen wir jedoch nur auf Felder zu.

Nach der Inspektion stoppen und entfernen wir den Container.

docker stop my-templated-container
docker rm my-templated-container

Container-Größeninformationen anzeigen

In diesem Schritt lernen Sie, wie Sie Größeninformationen Ihrer Docker-Container anzeigen können. Dies ist hilfreich für die Überwachung der Speichernutzung und das Verständnis des Speicherbedarfs Ihrer Container.

Standardmäßig zeigt der docker ps-Befehl nicht die Größe der Container an. Um Größeninformationen einzubeziehen, können Sie das Flag --size oder -s verwenden.

Zuerst starten wir einen einfachen Container.

docker run -d --name my-size-container ubuntu sleep infinity

Nun listen wir die laufenden Container mit Größeninformationen auf.

docker ps --size

oder

docker ps -s

In der Ausgabe sehen Sie eine zusätzliche Spalte mit der Bezeichnung SIZE. Diese Spalte zeigt zwei Werte an:

  1. Die Größe der beschreibbaren Ebene des Containers (die Änderungen am Dateisystem des Containers seit seiner Erstellung).
  2. Die Gesamtgröße des Containers, die die Größe der Image-Ebenen plus die beschreibbare Ebene umfasst.

Die Größe der beschreibbaren Ebene ist bei einfachen Containern, die nicht viele Daten schreiben, oft klein. Die Gesamtgröße ist größer, da sie die Basis-Image-Größe einschließt.

Sie können Größeninformationen auch anzeigen, wenn Sie alle Container (einschließlich gestoppter) mit docker ps -a --size auflisten.

docker ps -a --size

Dies ist nützlich, um die Größe von Containern zu sehen, die beendet wurden, aber noch nicht entfernt wurden.

Das Verständnis der Containergröße ist wichtig für die Verwaltung des Speicherplatzes auf Ihrem Docker-Host.

Abschließend stoppen und entfernen wir den Container.

docker stop my-size-container
docker rm my-size-container

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie den Befehl docker inspect verwenden, um detaillierte Informationen über Docker-Container anzuzeigen. Sie haben geübt, sowohl laufende als auch gestoppte Container zu inspizieren, wobei Sie festgestellt haben, dass der Befehl unabhängig vom Zustand des Containers umfassende Daten liefert.

Darüber hinaus haben Sie untersucht, wie Sie die Ausgabe von docker inspect formatieren können, insbesondere durch die Ausgabe der vollständigen Details als JSON und durch die Verwendung von Go-Templates, um spezifische Informationen zu extrahieren und anzuzeigen. Schließlich haben Sie gelernt, wie Sie das Flag --size verwenden, um Größeninformationen des Containers in die Inspektionsausgabe aufzunehmen.