Wie man den docker service inspect-Befehl verwendet, um Dienstdetails 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 service inspect verwenden, um detaillierte Informationen zu Docker-Services (Docker-Diensten) anzuzeigen. Sie werden verschiedene Methoden zur Inspektion eines Dienstes erkunden, einschließlich der Suche nach seinem Namen und seiner eindeutigen ID.

Darüber hinaus werden Sie entdecken, wie Sie die Ausgabe des Befehls docker service inspect mithilfe der Optionen --pretty und --format formatieren können, um das Detailniveau und die Darstellung der Dienstinformationen zu steuern.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") subgraph Lab Skills docker/ls -.-> lab-555225{{"Wie man den docker service inspect-Befehl verwendet, um Dienstdetails anzuzeigen"}} docker/inspect -.-> lab-555225{{"Wie man den docker service inspect-Befehl verwendet, um Dienstdetails anzuzeigen"}} docker/create -.-> lab-555225{{"Wie man den docker service inspect-Befehl verwendet, um Dienstdetails anzuzeigen"}} end

Einen Dienst nach Namen inspizieren

In diesem Schritt lernen Sie, wie Sie einen Docker-Dienst (Docker-Service) anhand seines Namens inspizieren können. Der Befehl docker service inspect liefert detaillierte Informationen zu einem Dienst, einschließlich seiner Konfiguration, Aufgaben und Netzwerkeinstellungen.

Zunächst erstellen wir einen einfachen Dienst, den wir inspizieren können. Wir werden einen Dienst namens my-web-service mithilfe des nginx-Images erstellen. Da Docker Compose nicht vorinstalliert ist, verwenden wir direkt den Befehl docker service create.

docker service create --name my-web-service nginx

Sie sollten eine Ausgabe sehen, die darauf hinweist, dass der Dienst erstellt wurde. Docker lädt das nginx-Image herunter, wenn es noch nicht auf Ihrem System vorhanden ist.

Nachdem der Dienst erstellt wurde, können Sie ihn anhand seines Namens mit dem Befehl docker service inspect und dem Dienstnamen inspizieren.

docker service inspect my-web-service

Dieser Befehl gibt ein großes JSON-Objekt aus, das alle Details über den my-web-service enthält. Diese Ausgabe kann recht umfangreich sein und bietet einen tiefen Einblick in die Konfiguration und den Zustand des Dienstes.

Einen Dienst anhand seiner ID inspizieren

Im vorherigen Schritt haben Sie gelernt, wie Sie einen Dienst anhand seines Namens inspizieren können. Docker weist jedem Dienst auch eine eindeutige ID zu. Sie können diese ID ebenfalls verwenden, um den Dienst zu inspizieren. Dies ist besonders nützlich, wenn Sie mehrere Dienste mit ähnlichen Namen haben oder wenn Sie Skripte schreiben.

Zunächst holen wir uns die ID des my-web-service, den wir im vorherigen Schritt erstellt haben. Sie können den Befehl docker service ls verwenden, um alle laufenden Dienste und ihre IDs aufzulisten.

docker service ls

Die Ausgabe zeigt eine Tabelle mit Spalten wie ID, NAME, MODE, REPLICAS und IMAGE. Die Spalte ID enthält den eindeutigen Bezeichner für jeden Dienst. Kopieren Sie die ID für den my-web-service. Es handelt sich um eine Zeichenfolge.

Verwenden Sie nun den Befehl docker service inspect gefolgt von der kopierten Dienst-ID. Ersetzen Sie <SERVICE_ID> durch die tatsächliche ID.

docker service inspect <SERVICE_ID>

Sie werden die gleiche detaillierte JSON-Ausgabe sehen wie beim Inspizieren anhand des Namens. Dies zeigt, dass Sie entweder den Dienstnamen oder seine ID verwenden können, um die Inspektionsdetails zu erhalten. Die Verwendung der ID ist oft genauer, insbesondere in automatisierten Skripten.

Ausgabe mithilfe von --pretty formatieren

In den vorherigen Schritten haben Sie gesehen, dass die Standardausgabe von docker service inspect ein großes JSON-Objekt ist. Obwohl diese Ausgabe umfassend ist, kann es schwierig sein, sie schnell zu überblicken. Docker bietet die Option --pretty, um die Informationen in einem für Menschen besser lesbaren Format auszugeben.

Lassen Sie uns den my-web-service erneut inspizieren, diesmal unter Verwendung der Option --pretty.

docker service inspect --pretty my-web-service

Sie werden feststellen, dass die Ausgabe jetzt so formatiert ist, dass sie leichter zu überfliegen und zu verstehen ist. Sie zeigt wichtige Informationen wie die Dienst-ID, den Namen, den Modus, die Replikate und das Image in einer strukturierten Anordnung an, anstatt als rohes JSON-Dump. Dies ist sehr nützlich, um schnell den Status und die grundlegende Konfiguration eines Dienstes zu überprüfen.

Die Option --pretty ist eine bequeme Möglichkeit, eine Zusammenfassung der Dienstdetails zu erhalten, ohne das gesamte JSON-Output parsen zu müssen.

Ausgabe mithilfe von --format formatieren

Während die Option --pretty eine für Menschen lesbare Zusammenfassung bietet, ermöglicht die Option --format eine feingranulierte Kontrolle über das Ausgabeformat mithilfe der Go-Template-Syntax. Dies ist unglaublich leistungsstark, um bestimmte Informationen zu extrahieren oder die Ausgabe für Skripte oder Berichte zu formatieren.

Die Go-Template-Syntax ermöglicht es Ihnen, auf Felder innerhalb der JSON-Ausgabe des inspect-Befehls zuzugreifen. Beispielsweise können Sie eine Formatzeichenfolge wie {{.ID}} {{.Spec.Name}} verwenden, um nur die Dienst-ID und den Namen zu erhalten.

Lassen Sie uns versuchen, den my-web-service zu inspizieren und die Ausgabe so zu formatieren, dass nur die Dienst-ID und der Name angezeigt werden.

docker service inspect --format '{{.ID}} {{.Spec.Name}}' my-web-service

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

<SERVICE_ID> my-web-service

wobei <SERVICE_ID> die tatsächliche ID Ihres Dienstes ist.

Sie können auf verschachtelte Felder mithilfe von Punkten zugreifen. Beispielsweise würden Sie {{.Spec.TaskTemplate.ContainerSpec.Image}} verwenden, um den Namen des Images zu erhalten.

Lassen Sie uns ein weiteres Beispiel versuchen, um den Dienstnamen und das von ihm verwendete Image zu erhalten.

docker service inspect --format 'Service Name: {{.Spec.Name}}, Image: {{.Spec.TaskTemplate.ContainerSpec.Image}}' my-web-service

Die Ausgabe wird wie folgt lauten:

Service Name: my-web-service, Image: nginx

Die Option --format ist sehr flexibel und ermöglicht es Ihnen, die Ausgabe an Ihre spezifischen Anforderungen anzupassen. Sie können die vollständige JSON-Ausgabe (ohne --pretty oder --format) untersuchen, um die Struktur zu verstehen und die Felder zu identifizieren, die Sie extrahieren möchten.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie den Befehl docker service inspect verwenden, um detaillierte Informationen zu Docker-Diensten anzuzeigen. Sie haben das Inspizieren eines Dienstes anhand seines Namens geübt, indem Sie zunächst einen einfachen nginx-Dienst namens my-web-service mit docker service create erstellt und dann docker service inspect my-web-service verwendet haben, um seine Konfiguration und seinen Zustand im JSON-Format abzurufen.

Sie haben auch gelernt, wie Sie einen Dienst anhand seiner eindeutigen ID inspizieren können. Indem Sie docker service ls verwendet haben, um die Dienst-ID zu finden, konnten Sie docker service inspect <SERVICE_ID> verwenden, um dieselben detaillierten Informationen zu erhalten. Dies zeigt eine alternative Methode zum Inspizieren von Diensten auf, die besonders nützlich ist, wenn Sie Skripte schreiben oder wenn die Namen nicht eindeutig sind.