Comment utiliser la commande docker service inspect pour afficher les détails d'un service

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 la commande docker service inspect pour afficher des informations détaillées sur les services Docker. Vous explorerez différentes méthodes pour inspecter un service, notamment par son nom et par son identifiant unique (ID).

En outre, vous découvrirez comment formater la sortie de la commande docker service inspect en utilisant les options --pretty et --format pour contrôler le niveau de détail et la présentation des informations sur le service.


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{{"Comment utiliser la commande docker service inspect pour afficher les détails d'un service"}} docker/inspect -.-> lab-555225{{"Comment utiliser la commande docker service inspect pour afficher les détails d'un service"}} docker/create -.-> lab-555225{{"Comment utiliser la commande docker service inspect pour afficher les détails d'un service"}} end

Inspecter un service par son nom

Dans cette étape, vous apprendrez à inspecter un service Docker par son nom. La commande docker service inspect fournit des informations détaillées sur un service, notamment sa configuration, ses tâches (tasks) et ses paramètres réseau.

Tout d'abord, créons un simple service à inspecter. Nous allons créer un service nommé my-web-service en utilisant l'image nginx. Étant donné que Docker Compose n'est pas préinstallé, nous utiliserons directement la commande docker service create.

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

Vous devriez voir une sortie indiquant que le service a été créé. Docker téléchargera (pull) l'image nginx si elle n'est pas déjà présente sur votre système.

Maintenant que le service est créé, vous pouvez l'inspecter par son nom en utilisant la commande docker service inspect suivie du nom du service.

docker service inspect my-web-service

Cette commande affichera un grand objet JSON contenant tous les détails sur le service my-web-service. Cette sortie peut être assez volumineuse, offrant un aperçu approfondi de la configuration et de l'état du service.

Inspecter un service par son identifiant (ID)

Dans l'étape précédente, vous avez appris à inspecter un service par son nom. Docker attribue également un identifiant unique (ID) à chaque service. Vous pouvez également utiliser cet ID pour inspecter le service. Cela est particulièrement utile lorsque vous avez plusieurs services avec des noms similaires ou lors de la création de scripts.

Tout d'abord, récupérons l'identifiant (ID) du service my-web-service que nous avons créé dans l'étape précédente. Vous pouvez utiliser la commande docker service ls pour lister tous les services en cours d'exécution et leurs identifiants (ID).

docker service ls

La sortie affichera un tableau avec des colonnes telles que ID, NAME, MODE, REPLICAS et IMAGE. La colonne ID contient l'identifiant unique de chaque service. Copiez l'identifiant (ID) du service my-web-service. Il s'agira d'une chaîne de caractères.

Maintenant, utilisez la commande docker service inspect suivie de l'identifiant (ID) du service que vous avez copié. Remplacez <SERVICE_ID> par l'identifiant réel.

docker service inspect <SERVICE_ID>

Vous verrez la même sortie JSON détaillée que lorsque vous avez inspecté le service par son nom. Cela démontre que vous pouvez utiliser soit le nom du service, soit son identifiant (ID) pour obtenir les détails de l'inspection. L'utilisation de l'identifiant (ID) est souvent plus précise, notamment dans les scripts automatisés.

Formater la sortie avec l'option --pretty

Dans les étapes précédentes, vous avez vu que la sortie par défaut de la commande docker service inspect est un grand objet JSON. Bien que complète, ce format peut être difficile à lire pour obtenir un aperçu rapide. Docker propose le paramètre --pretty pour afficher les informations dans un format plus lisible pour l'homme.

Inspectons à nouveau le service my-web-service, cette fois en utilisant le paramètre --pretty.

docker service inspect --pretty my-web-service

Vous remarquerez que la sortie est maintenant formatée de manière à être plus facile à parcourir et à comprendre. Elle présente les informations clés telles que l'identifiant (ID) du service, le nom, le mode (mode), le nombre de réplicas (replicas) et l'image dans une mise en page structurée, plutôt qu'un simple affichage brut de JSON. Cela est très utile pour vérifier rapidement l'état et la configuration de base d'un service.

Le paramètre --pretty est un moyen pratique d'obtenir un résumé des détails du service sans avoir à analyser la sortie JSON complète.

Formater la sortie avec l'option --format

Alors que l'option --pretty fournit un résumé lisible par l'homme, l'option --format vous offre un contrôle précis sur le format de sortie en utilisant la syntaxe des templates Go. Cela est incroyablement puissant pour extraire des informations spécifiques ou formater la sortie pour des scripts ou des rapports.

La syntaxe des templates Go vous permet d'accéder aux champs dans la sortie JSON de la commande inspect. Par exemple, pour obtenir uniquement l'identifiant (ID) et le nom du service, vous pouvez utiliser une chaîne de format comme {{.ID}} {{.Spec.Name}}.

Essayons d'inspecter le service my-web-service et de formater la sortie pour n'afficher que l'identifiant (ID) et le nom du service.

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

Vous devriez voir une sortie similaire à :

<SERVICE_ID> my-web-service

<SERVICE_ID> est l'identifiant réel de votre service.

Vous pouvez accéder aux champs imbriqués en utilisant des points. Par exemple, pour obtenir le nom de l'image, vous utiliseriez {{.Spec.TaskTemplate.ContainerSpec.Image}}.

Essayons un autre exemple pour obtenir le nom du service et l'image qu'il utilise.

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

La sortie sera :

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

L'option --format est très flexible et vous permet d'adapter la sortie à vos besoins spécifiques. Vous pouvez explorer la sortie JSON complète (sans --pretty ou --format) pour comprendre la structure et identifier les champs que vous souhaitez extraire.

Résumé

Dans ce laboratoire, vous avez appris à utiliser la commande docker service inspect pour afficher des informations détaillées sur les services Docker. Vous avez pratiqué l'inspection d'un service par son nom, en créant d'abord un simple service nginx nommé my-web-service à l'aide de docker service create, puis en utilisant docker service inspect my-web-service pour récupérer sa configuration et son état au format JSON.

Vous avez également appris à inspecter un service en utilisant son identifiant unique (ID). En utilisant docker service ls pour trouver l'identifiant du service, vous avez pu utiliser docker service inspect <SERVICE_ID> pour obtenir les mêmes informations détaillées, ce qui démontre une méthode alternative pour inspecter les services, particulièrement utile dans les scripts ou lorsque les noms sont ambigus.