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.