Wie man den docker network inspect-Befehl verwendet, um Netzwerkdetails 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 network inspect verwenden, um detaillierte Informationen zu Docker-Netzwerken anzuzeigen. Sie beginnen damit, ein benutzerdefiniertes Docker-Netzwerk zu erstellen, mit dem Sie arbeiten können.

Nach der Erstellung des Netzwerks werden Sie verschiedene Methoden zur Prüfung seiner Konfiguration erkunden. Dies umfasst die Verwendung der Standard-JSON-Ausgabe, die Anwendung einer Go-Vorlage (Go template) für eine benutzerdefinierte Ausgabe und die Nutzung der ausführlichen Option (verbose option) für umfassendere Details. Abschließend lernen Sie, wie Sie mehrere Netzwerke gleichzeitig prüfen können.


Skills Graph

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

Erstellen eines benutzerdefinierten Docker-Netzwerks

In diesem Schritt lernen Sie, wie Sie ein benutzerdefiniertes Netzwerk in Docker erstellen. Standardmäßig bietet Docker mehrere Netzwerk-Treiber (network drivers), aber die Erstellung eines benutzerdefinierten Netzwerks ermöglicht es Ihnen, Ihre Container voneinander zu isolieren und zu steuern, wie sie miteinander kommunizieren.

Bevor Sie ein Netzwerk erstellen, lassen Sie uns die vorhandenen Netzwerke auf Ihrem System mit dem Befehl docker network ls überprüfen.

docker network ls

Sie sollten einige Standardnetzwerke wie bridge, host und none sehen.

Jetzt erstellen wir ein neues benutzerdefiniertes Netzwerk namens my-custom-network mit dem bridge-Treiber. Der bridge-Treiber ist der Standard-Netzwerk-Treiber und eignet sich für die meisten Anwendungsfälle.

docker network create my-custom-network

Nach der Ausführung des Befehls erstellt Docker das Netzwerk und gibt seine ID aus.

Um zu überprüfen, ob das Netzwerk erfolgreich erstellt wurde, führen Sie erneut den Befehl docker network ls aus.

docker network ls

Sie sollten jetzt my-custom-network in der Liste der verfügbaren Netzwerke sehen.

Prüfen des benutzerdefinierten Netzwerks im Standard-JSON-Format

In diesem Schritt lernen Sie, wie Sie die Details eines Docker-Netzwerks mit dem Befehl docker network inspect prüfen können. Standardmäßig gibt dieser Befehl die Netzwerkkonfiguration im JSON-Format aus, das umfassende Informationen über das Netzwerk liefert, einschließlich seiner ID, seines Namens, des Treibers (driver), des Subnetzes, des Gateways und der verbundenen Container.

Um das my-custom-network, das Sie im vorherigen Schritt erstellt haben, zu prüfen, verwenden Sie den folgenden Befehl:

docker network inspect my-custom-network

Dieser Befehl gibt ein detailliertes JSON-Objekt aus, das die Konfiguration von my-custom-network darstellt. Sie können diese Ausgabe untersuchen, um die Eigenschaften des Netzwerks zu verstehen.

Die Ausgabe wird Felder wie die folgenden enthalten:

  • Name: Der Name des Netzwerks (my-custom-network).
  • Id: Die eindeutige ID des Netzwerks.
  • Driver: Der verwendete Netzwerk-Treiber (bridge).
  • Scope: Der Geltungsbereich (Scope) des Netzwerks (normalerweise local).
  • IPAM: Informationen zur IP-Adressverwaltung (IP Address Management), einschließlich des Subnetzes und des Gateways.
  • Containers: Eine Liste der an dieses Netzwerk angeschlossenen Container (zunächst leer).

Das Verständnis der Ausgabe von docker network inspect ist entscheidend für die Fehlersuche bei Netzwerkproblemen und das Verständnis, wie Ihre Container verbunden sind.

Prüfen des benutzerdefinierten Netzwerks mit einer Go-Vorlage

In diesem Schritt lernen Sie, wie Sie Go-Vorlagen (Go templates) mit dem Befehl docker network inspect verwenden, um spezifische Informationen aus der Netzwerkkonfiguration zu extrahieren. Dies ist nützlich, wenn Sie nur bestimmte Details benötigen und nicht das gesamte JSON-Output parsen möchten.

Die Option -f oder --format ermöglicht es Ihnen, eine Go-Vorlage anzugeben. Die Vorlage verwendet die Go-Vorlagensyntax, um auf Felder innerhalb des JSON-Outputs zuzugreifen.

Angenommen, Sie möchten nur die ID und den Treiber (driver) des Netzwerks sehen. Sie können die folgende Vorlage verwenden: {{.Id}} {{.Driver}}.

Führen Sie den folgenden Befehl aus, um my-custom-network zu prüfen und die Ausgabe mit dieser Vorlage zu formatieren:

docker network inspect -f '{{.Id}} {{.Driver}}' my-custom-network

Die Ausgabe wird die Netzwerk-ID gefolgt vom Namen des Treibers sein, getrennt durch ein Leerzeichen.

Sie können auch auf verschachtelte Felder zugreifen. Beispielsweise können Sie die Vorlage {{.IPAM.Config}} verwenden, um das Subnetz aus der IPAM-Konfiguration zu erhalten. Da IPAM.Config eine Liste ist, müssen Sie möglicherweise durch diese iterieren oder auf ein bestimmtes Element zugreifen, wenn es mehrere Konfigurationen gibt. Der Einfachheit halber nehmen wir an, dass es nur eine Konfiguration gibt, und greifen auf das Subnet-Feld innerhalb des ersten Elements der Config-Liste zu: {{(index .IPAM.Config 0).Subnet}}.

Versuchen wir, das Netzwerk zu prüfen und den Netzwerknamen und das Subnetz anzuzeigen:

docker network inspect -f 'Name: {{.Name}}, Subnet: {{(index .IPAM.Config 0).Subnet}}' my-custom-network

Dieser Befehl gibt den Netzwerknamen und sein Subnetz in einem lesbareren Format aus.

Die Verwendung von Go-Vorlagen bietet eine leistungsstarke Möglichkeit, die Ausgabe von Docker-Befehlen anzupassen und genau die Informationen zu extrahieren, die Sie benötigen.

Prüfen des benutzerdefinierten Netzwerks mit ausführlicher Ausgabe

In diesem Schritt lernen Sie, wie Sie detailliertere Informationen erhalten, wenn Sie ein Docker-Netzwerk prüfen, indem Sie die Option --verbose oder -v verwenden. Diese Option liefert zusätzliche Details, die nicht in der Standardausgabe enthalten sind. Dies kann für fortgeschrittenes Debugging und zum Verständnis des internen Zustands des Netzwerks hilfreich sein.

Um my-custom-network mit ausführlicher Ausgabe zu prüfen, verwenden Sie den folgenden Befehl:

docker network inspect -v my-custom-network

Die Ausgabe ähnelt der Standard-JSON-Ausgabe, enthält jedoch zusätzliche Felder und Details. Die genauen zusätzlichen Informationen können je nach Netzwerktreiber (network driver) und Docker-Version variieren, beinhalten aber oft tiefere Details zur Konfiguration und zum Zustand des Netzwerks.

Beispielsweise kann die ausführliche Ausgabe bei Verwendung des bridge-Treibers Details über die zugrunde liegende Bridge-Schnittstelle (bridge interface) auf dem Hostsystem enthalten, einschließlich ihrer MAC-Adresse und IP-Adresse. Es kann auch detailliertere Informationen zur IPAM-Konfiguration anzeigen.

Während die Standardausgabe für die meisten Zwecke normalerweise ausreicht, kann die ausführliche Ausgabe unschätzbar sein, wenn Sie tiefer in die Netzwerkkonfiguration eintauchen oder komplexe Netzwerkprobleme beheben müssen.

Vergleichen Sie die Ausgabe dieses Befehls mit der Ausgabe aus dem vorherigen Schritt, um die zusätzlichen Informationen zu sehen, die durch die ausführliche Option bereitgestellt werden.

Prüfen mehrerer Netzwerke

In diesem Schritt lernen Sie, wie Sie mehrere Docker-Netzwerke gleichzeitig mit dem Befehl docker network inspect prüfen können. Dies kann nützlich sein, wenn Sie die Konfigurationen verschiedener Netzwerke vergleichen oder Informationen zu mehreren Netzwerken auf einmal erhalten müssen.

Um mehrere Netzwerke zu prüfen, geben Sie einfach die Namen oder IDs der Netzwerke als Argumente an den Befehl docker network inspect an, getrennt durch Leerzeichen.

Lassen Sie uns das von Ihnen erstellte my-custom-network und das Standard-bridge-Netzwerk prüfen.

docker network inspect my-custom-network bridge

Dieser Befehl gibt die JSON-Konfiguration für sowohl my-custom-network als auch das bridge-Netzwerk aus. Die Ausgabe für jedes Netzwerk wird ein separates JSON-Objekt sein.

Sie können auch das Prüfen mehrerer Netzwerke mit den Formatierungsoptionen kombinieren, die Sie in den vorherigen Schritten gelernt haben. Beispielsweise können Sie den Namen und den Treiber (driver) beider Netzwerke mit einer Go-Vorlage (Go template) abrufen:

docker network inspect -f 'Name: {{.Name}}, Driver: {{.Driver}}' my-custom-network bridge

Dies gibt den Namen und den Treiber für jedes angegebene Netzwerk in einer separaten Zeile aus.

Das gleichzeitige Prüfen mehrerer Netzwerke kann Ihren Arbeitsablauf erheblich vereinfachen, wenn Sie mehrere Netzwerke in Ihrer Docker-Umgebung verwalten.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie ein benutzerdefiniertes Docker-Netzwerk mit dem Befehl docker network create erstellen und die Erstellung mit docker network ls überprüfen können. Anschließend haben Sie den Befehl docker network inspect untersucht, um detaillierte Netzwerkkonfigurationen anzuzeigen.

Sie haben das Prüfen eines Netzwerks mit der Standard-JSON-Ausgabe geübt, eine Go-Vorlage (Go template) für eine benutzerdefinierte Ausgabe genutzt und ausführliche Informationen abgerufen. Abschließend haben Sie gelernt, wie Sie mehrere Netzwerke gleichzeitig prüfen können.