Comment utiliser la commande docker network ls pour lister et filtrer les 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 (lab), vous apprendrez à utiliser efficacement la commande docker network ls pour lister et filtrer les réseaux Docker. Vous commencerez par lister tous les réseaux disponibles, puis vous explorerez comment afficher les identifiants complets des réseaux en utilisant l'option --no-trunc.

En outre, vous pratiquerez le filtrage des réseaux en fonction de différents critères tels que le pilote (driver), le nom, la portée (scope) et le type. Enfin, vous apprendrez à formater la sortie de la commande docker network ls à l'aide d'un modèle pour un affichage personnalisé. Ce laboratoire vous dotera des compétences essentielles pour gérer et inspecter les réseaux Docker à l'aide de la ligne de commande.


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/NetworkOperationsGroup -.-> docker/network("Manage Networks") subgraph Lab Skills docker/ls -.-> lab-555177{{"Comment utiliser la commande docker network ls pour lister et filtrer les réseaux"}} docker/network -.-> lab-555177{{"Comment utiliser la commande docker network ls pour lister et filtrer les réseaux"}} end

Lister tous les réseaux Docker

Dans cette étape, vous apprendrez à lister tous les réseaux Docker disponibles sur votre système. Les réseaux Docker sont essentiels pour que les conteneurs puissent communiquer entre eux et avec le monde extérieur. Par défaut, Docker crée trois réseaux : bridge, host et none.

Pour lister tous les réseaux Docker, vous utilisez la commande docker network ls. Cette commande fournit une liste des réseaux, y compris leur identifiant (ID), leur nom, leur pilote (driver) et leur portée (scope).

Exécutons la commande pour voir les réseaux disponibles.

docker network ls

Vous devriez voir une sortie similaire à celle-ci :

NETWORK ID     NAME      DRIVER    SCOPE
b432a7b0f123   bridge    bridge    local
f567c8d1e234   host      host      local
a987b6c5d4e3   none      null      local

La sortie montre les réseaux par défaut. L'NETWORK ID est un identifiant unique pour le réseau. Le NAME est le nom du réseau. Le DRIVER est le pilote réseau utilisé par le réseau (par exemple, bridge, host, null). Le SCOPE indique où le réseau est disponible (par exemple, local).

Lister les réseaux sans tronquer l'ID

Dans l'étape précédente, vous avez listé les réseaux Docker et remarqué que l'NETWORK ID était tronqué. C'est le comportement par défaut pour que la sortie soit concise. Cependant, parfois, vous avez besoin de l'identifiant complet du réseau, par exemple, lorsque vous faites référence à un réseau spécifique dans d'autres commandes Docker.

Pour afficher l'identifiant complet du réseau, vous pouvez utiliser l'option --no-trunc avec la commande docker network ls.

Essayons cette commande pour voir les identifiants complets des réseaux.

docker network ls --no-trunc

La sortie affichera maintenant les identifiants complets des réseaux :

NETWORK ID                                                       NAME      DRIVER    SCOPE
b432a7b0f1234567890abcdef1234567890abcdef1234567890abcdef12345678 bridge    bridge    local
f567c8d1e234567890abcdef1234567890abcdef1234567890abcdef12345678 host      host      local
a987b6c5d4e3210fedcba9876543210fedcba9876543210fedcba9876543210fed none      null      local

Comme vous pouvez le voir, la colonne NETWORK ID affiche maintenant les identifiants complets, non tronqués. Cela est utile lorsque vous avez besoin de copier et coller l'identifiant complet pour des opérations ultérieures.

Filtrer les réseaux par pilote (driver)

Dans cette étape, vous apprendrez à filtrer la liste des réseaux Docker en fonction de leur pilote (driver). Cela est utile lorsque vous souhaitez voir uniquement les réseaux utilisant un pilote spécifique, comme bridge ou host.

Vous pouvez utiliser l'option --filter avec la commande docker network ls pour filtrer la sortie. La syntaxe du filtre est clé=valeur. Pour filtrer par pilote, vous utilisez la clé driver.

Filtrons les réseaux pour n'afficher que ceux utilisant le pilote bridge.

docker network ls --filter driver=bridge

La sortie affichera maintenant uniquement les réseaux avec le pilote bridge :

NETWORK ID     NAME      DRIVER    SCOPE
b432a7b0f123   bridge    bridge    local

Maintenant, filtrons les réseaux pour n'afficher que ceux utilisant le pilote host.

docker network ls --filter driver=host

La sortie affichera maintenant uniquement les réseaux avec le pilote host :

NETWORK ID     NAME      DRIVER    SCOPE
f567c8d1e234   host      host      local

Vous pouvez utiliser cette capacité de filtrage pour trouver rapidement des réseaux en fonction de leur technologie sous-jacente.

Filtrer les réseaux par nom

Dans cette étape, vous apprendrez à filtrer la liste des réseaux Docker en fonction de leur nom. Cela est utile lorsque vous recherchez un réseau spécifique par son nom.

De la même manière que pour le filtrage par pilote (driver), vous utilisez l'option --filter avec la commande docker network ls. Pour filtrer par nom, vous utilisez la clé name.

Filtrons les réseaux pour n'afficher que le réseau nommé bridge.

docker network ls --filter name=bridge

La sortie affichera maintenant uniquement le réseau nommé bridge :

NETWORK ID     NAME      DRIVER    SCOPE
b432a7b0f123   bridge    bridge    local

Maintenant, filtrons les réseaux pour n'afficher que le réseau nommé host.

docker network ls --filter name=host

La sortie affichera maintenant uniquement le réseau nommé host :

NETWORK ID     NAME      DRIVER    SCOPE
f567c8d1e234   host      host      local

Vous pouvez utiliser ce filtre pour localiser rapidement un réseau lorsque vous connaissez son nom.

Filtrer les réseaux par étendue (scope) et type

Dans cette étape, vous apprendrez à filtrer la liste des réseaux Docker en fonction de leur étendue (scope) et de leur type. L'étendue (scope) indique où le réseau est disponible (par exemple, local ou swarm), et le type fait référence au pilote de réseau (network driver). Bien que le type soit souvent le même que le driver, il est également possible d'utiliser type comme clé de filtre.

Vous pouvez utiliser l'option --filter avec la commande docker network ls pour filtrer la sortie. Pour filtrer par étendue, vous utilisez la clé scope. Pour filtrer par type, vous utilisez la clé type.

Filtrons les réseaux pour n'afficher que ceux ayant une étendue (scope) local.

docker network ls --filter scope=local

La sortie affichera tous les réseaux ayant une étendue local :

NETWORK ID     NAME      DRIVER    SCOPE
b432a7b0f123   bridge    bridge    local
f567c8d1e234   host      host      local
a987b6c5d4e3   none      null      local

Maintenant, filtrons les réseaux pour n'afficher que ceux de type bridge.

docker network ls --filter type=bridge

La sortie affichera les réseaux de type bridge (qui est le même que le pilote bridge dans ce cas) :

NETWORK ID     NAME      DRIVER    SCOPE
b432a7b0f123   bridge    bridge    local

Vous pouvez combiner des filtres en utilisant plusieurs fois l'option --filter. Par exemple, pour filtrer les réseaux ayant une étendue local et un pilote bridge :

docker network ls --filter scope=local --filter driver=bridge

Cela vous donnera le même résultat que le filtrage par type=bridge dans cet environnement spécifique, mais cela montre comment combiner des filtres.

Formater la sortie des réseaux à l'aide d'un modèle

Dans cette étape, vous apprendrez à formater la sortie de la commande docker network ls à l'aide d'un modèle Go. Il s'agit d'une fonctionnalité puissante qui vous permet de personnaliser la sortie pour afficher uniquement les informations dont vous avez besoin et dans un format spécifique.

L'option --format vous permet de spécifier un modèle. Le modèle utilise la syntaxe du package text/template de Go. Vous pouvez accéder à divers champs de l'objet réseau, tels que .ID, .Name, .Driver et .Scope.

Formattons la sortie pour afficher uniquement le nom du réseau et le pilote, séparés par deux points.

docker network ls --format "{{.Name}}: {{.Driver}}"

La sortie sera maintenant formatée selon le modèle :

bridge: bridge
host: host
none: null

Vous pouvez également inclure des en-têtes dans votre sortie formatée.

docker network ls --format "Network Name\tDriver\n{{.Name}}\t{{.Driver}}"

La sortie inclura maintenant des en-têtes :

Network Name    Driver
bridge          bridge
host            host
none            null

Le caractère \t crée un espace de tabulation, et \n crée une nouvelle ligne. Cette capacité de formatage est très utile pour les scripts et la génération de rapports.

Résumé

Dans ce lab, vous avez appris à utiliser la commande docker network ls pour lister les réseaux Docker. Vous avez commencé par lister tous les réseaux disponibles, en observant les réseaux par défaut et leurs informations de base (ID, nom, pilote, étendue - scope). Vous avez ensuite exploré comment afficher l'ID complet du réseau en utilisant l'option --no-trunc, ce qui est utile pour faire référence à des réseaux spécifiques.

En outre, vous avez pratiqué le filtrage des listes de réseaux en fonction de différents critères. Vous avez appris à filtrer par pilote en utilisant l'option --filter driver=<driver_name>, par nom de réseau en utilisant --filter name=<network_name>, et par étendue (scope) et type en utilisant --filter scope=<scope> et --filter type=<type>. Enfin, vous avez découvert comment formater la sortie de la commande docker network ls en utilisant l'option --format et des modèles Go, ce qui vous permet de personnaliser les informations affichées.