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