Comment utiliser la commande docker network inspect pour afficher les détails des réseaux

DockerDockerBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous apprendrez à utiliser la commande docker network inspect pour afficher des informations détaillées sur les réseaux Docker. Vous commencerez par créer un réseau Docker personnalisé sur lequel travailler.

Après avoir créé le réseau, vous explorerez différentes méthodes pour inspecter sa configuration. Cela inclut l'utilisation de la sortie JSON par défaut, l'application d'un modèle Go pour une sortie personnalisée et l'utilisation de l'option verbeuse pour plus de détails. Enfin, vous apprendrez à inspecter plusieurs réseaux simultanément.


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{{"Comment utiliser la commande docker network inspect pour afficher les détails des réseaux"}} docker/inspect -.-> lab-555176{{"Comment utiliser la commande docker network inspect pour afficher les détails des réseaux"}} docker/create -.-> lab-555176{{"Comment utiliser la commande docker network inspect pour afficher les détails des réseaux"}} docker/network -.-> lab-555176{{"Comment utiliser la commande docker network inspect pour afficher les détails des réseaux"}} end

Créer un réseau Docker personnalisé

Dans cette étape, vous apprendrez à créer un réseau personnalisé dans Docker. Par défaut, Docker propose plusieurs pilotes de réseau (network drivers), mais la création d'un réseau personnalisé vous permet d'isoler vos conteneurs et de contrôler la manière dont ils communiquent entre eux.

Avant de créer un réseau, vérifions les réseaux existants sur votre système en utilisant la commande docker network ls.

docker network ls

Vous devriez voir certains réseaux par défaut tels que bridge, host et none.

Maintenant, créons un nouveau réseau personnalisé nommé my-custom-network en utilisant le pilote bridge. Le pilote bridge est le pilote de réseau par défaut et convient à la plupart des cas d'utilisation.

docker network create my-custom-network

Après avoir exécuté la commande, Docker créera le réseau et affichera son identifiant.

Pour vérifier que le réseau a été créé avec succès, exécutez à nouveau la commande docker network ls.

docker network ls

Vous devriez maintenant voir my-custom-network répertorié parmi les réseaux disponibles.

Inspecter le réseau personnalisé au format JSON par défaut

Dans cette étape, vous apprendrez à inspecter les détails d'un réseau Docker en utilisant la commande docker network inspect. Par défaut, cette commande affiche la configuration du réseau au format JSON, qui fournit des informations complètes sur le réseau, notamment son identifiant, son nom, le pilote (driver), le sous-réseau (subnet), la passerelle (gateway) et les conteneurs connectés.

Pour inspecter le réseau my-custom-network que vous avez créé à l'étape précédente, utilisez la commande suivante :

docker network inspect my-custom-network

Cette commande affichera un objet JSON détaillé représentant la configuration de my-custom-network. Vous pouvez examiner cette sortie pour comprendre les propriétés du réseau.

La sortie inclura des champs tels que :

  • Name : Le nom du réseau (my-custom-network).
  • Id : L'identifiant unique du réseau.
  • Driver : Le pilote de réseau utilisé (bridge).
  • Scope : La portée du réseau (généralement local).
  • IPAM : Des informations sur la gestion des adresses IP (IP Address Management), y compris le sous-réseau et la passerelle.
  • Containers : Une liste des conteneurs connectés à ce réseau (initialement vide).

Comprendre la sortie de docker network inspect est essentiel pour déboguer les problèmes de réseau et comprendre comment vos conteneurs sont connectés.

Inspecter le réseau personnalisé en utilisant un modèle Go

Dans cette étape, vous apprendrez à utiliser des modèles Go avec la commande docker network inspect pour extraire des informations spécifiques de la configuration du réseau. Cela est utile lorsque vous avez besoin que de certains détails et que vous ne voulez pas analyser toute la sortie JSON.

Le flag -f ou --format vous permet de spécifier un modèle Go. Le modèle utilise la syntaxe des modèles Go pour accéder aux champs dans la sortie JSON.

Supposons que vous ne souhaitiez voir que l'identifiant et le pilote (driver) du réseau. Vous pouvez utiliser le modèle suivant : {{.Id}} {{.Driver}}.

Exécutez la commande suivante pour inspecter le réseau my-custom-network et formater la sortie en utilisant ce modèle :

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

La sortie sera l'identifiant du réseau suivi du nom du pilote, séparés par un espace.

Vous pouvez également accéder à des champs imbriqués. Par exemple, pour obtenir le sous-réseau (subnet) à partir de la configuration IPAM, vous pouvez utiliser le modèle {{.IPAM.Config}}. Étant donné que IPAM.Config est une liste, vous devrez peut-être itérer à travers elle ou accéder à un élément spécifique s'il y a plusieurs configurations. Pour simplifier, supposons qu'il n'y ait qu'une seule configuration et accédons au champ Subnet dans le premier élément de la liste Config : {{(index .IPAM.Config 0).Subnet}}.

Essayons d'inspecter le réseau et d'afficher le nom du réseau et le sous-réseau :

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

Cette commande affichera le nom du réseau et son sous-réseau dans un format plus lisible.

L'utilisation de modèles Go offre un moyen puissant de personnaliser la sortie des commandes Docker et d'extraire exactement les informations dont vous avez besoin.

Inspecter le réseau personnalisé avec une sortie détaillée

Dans cette étape, vous apprendrez à obtenir des informations plus détaillées lors de l'inspection d'un réseau Docker en utilisant le flag --verbose ou -v. Ce flag fournit des détails supplémentaires qui ne sont pas inclus dans la sortie par défaut, ce qui peut être utile pour le débogage avancé et la compréhension de l'état interne du réseau.

Pour inspecter le réseau my-custom-network avec une sortie détaillée, utilisez la commande suivante :

docker network inspect -v my-custom-network

La sortie sera similaire à la sortie JSON par défaut, mais elle inclura des champs et des détails supplémentaires. Les informations supplémentaires exactes peuvent varier en fonction du pilote de réseau (network driver) et de la version de Docker, mais elles incluent souvent des détails plus bas niveau sur la configuration et l'état du réseau.

Par exemple, avec le pilote bridge, la sortie détaillée peut inclure des détails sur l'interface de pont (bridge interface) sous-jacente sur le système hôte, y compris son adresse MAC et son adresse IP. Elle peut également afficher des informations plus détaillées sur la configuration IPAM.

Bien que la sortie par défaut soit généralement suffisante pour la plupart des cas d'utilisation, la sortie détaillée peut être inestimable lorsque vous avez besoin de plonger plus profondément dans la configuration du réseau ou de résoudre des problèmes de réseau complexes.

Comparez la sortie de cette commande avec la sortie de l'étape précédente pour voir les informations supplémentaires fournies par le flag de sortie détaillée.

Inspecter plusieurs réseaux

Dans cette étape, vous apprendrez à inspecter plusieurs réseaux Docker simultanément en utilisant la commande docker network inspect. Cela peut être utile lorsque vous avez besoin de comparer les configurations de différents réseaux ou d'obtenir des informations sur plusieurs réseaux à la fois.

Pour inspecter plusieurs réseaux, il suffit de fournir les noms ou les identifiants (IDs) des réseaux en tant qu'arguments à la commande docker network inspect, séparés par des espaces.

Inspectons le réseau my-custom-network que vous avez créé et le réseau bridge par défaut.

docker network inspect my-custom-network bridge

Cette commande affichera la configuration JSON à la fois pour le réseau my-custom-network et le réseau bridge. La sortie pour chaque réseau sera un objet JSON distinct.

Vous pouvez également combiner l'inspection de plusieurs réseaux avec les options de formatage que vous avez apprises dans les étapes précédentes. Par exemple, pour obtenir le nom et le pilote (driver) des deux réseaux en utilisant un modèle Go (Go template) :

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

Cela affichera le nom et le pilote pour chaque réseau spécifié sur une ligne distincte.

Inspecter plusieurs réseaux à la fois peut considérablement rationaliser votre flux de travail lorsque vous gérez plusieurs réseaux dans votre environnement Docker.

Résumé

Dans ce laboratoire, vous avez appris à créer un réseau Docker personnalisé en utilisant la commande docker network create et à vérifier sa création avec docker network ls. Vous avez ensuite exploré la commande docker network inspect pour afficher les configurations détaillées des réseaux.

Vous avez pratiqué l'inspection d'un réseau en utilisant la sortie JSON par défaut, en utilisant un modèle Go (Go template) pour une sortie personnalisée et en obtenant des informations détaillées (verbose). Enfin, vous avez appris à inspecter plusieurs réseaux simultanément.