Comment utiliser la commande docker container inspect pour visualiser les détails d'un conteneur

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 lab, vous apprendrez à utiliser la commande docker inspect pour visualiser des informations détaillées sur les conteneurs Docker. Vous explorerez comment inspecter des conteneurs en cours d'exécution et arrêtés, comprendrez le format de sortie JSON par défaut et découvrirez comment formater la sortie à l'aide d'un modèle Go pour des vues personnalisées. De plus, vous apprendrez à afficher des informations sur la taille des conteneurs en utilisant la commande docker inspect.

À travers des exercices pratiques, vous acquerrez une expérience concrète dans l'utilisation de docker inspect pour récupérer des informations précieuses sur la configuration, l'état et les détails réseau, ce qui est essentiel pour le dépannage et la gestion de votre environnement Docker.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/stop("Stop Container") docker/ContainerOperationsGroup -.-> docker/rm("Remove Container") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") subgraph Lab Skills docker/run -.-> lab-555110{{"Comment utiliser la commande docker container inspect pour visualiser les détails d'un conteneur"}} docker/ps -.-> lab-555110{{"Comment utiliser la commande docker container inspect pour visualiser les détails d'un conteneur"}} docker/stop -.-> lab-555110{{"Comment utiliser la commande docker container inspect pour visualiser les détails d'un conteneur"}} docker/rm -.-> lab-555110{{"Comment utiliser la commande docker container inspect pour visualiser les détails d'un conteneur"}} docker/inspect -.-> lab-555110{{"Comment utiliser la commande docker container inspect pour visualiser les détails d'un conteneur"}} end

Inspecter un conteneur en cours d'exécution

Dans cette étape, vous apprendrez comment inspecter un conteneur Docker en cours d'exécution. La commande docker inspect fournit des informations détaillées sur un conteneur, y compris sa configuration, ses paramètres réseau et son état.

Commençons par exécuter un conteneur simple qui reste actif. Nous utiliserons l'image ubuntu et exécuterons une commande qui maintient le conteneur en fonctionnement.

docker run -d --name my-running-container ubuntu sleep infinity

Dans la commande ci-dessus :

  • docker run : Cette commande permet d'exécuter un nouveau conteneur.
  • -d : Ce flag exécute le conteneur en mode détaché, c'est-à-dire en arrière-plan.
  • --name my-running-container : Ce paramètre attribue un nom au conteneur, facilitant ainsi sa référence.
  • ubuntu : Il s'agit de l'image utilisée. Si l'image n'est pas disponible localement, Docker la téléchargera.
  • sleep infinity : Cette commande est exécutée à l'intérieur du conteneur et le maintient actif indéfiniment.

Maintenant que le conteneur est en cours d'exécution, nous pouvons l'inspecter. Utilisez la commande docker inspect suivie du nom du conteneur.

docker inspect my-running-container

Cette commande affichera un grand objet JSON contenant tous les détails concernant my-running-container. Vous pouvez parcourir la sortie pour voir les différentes sections, telles que Id, State, Config, NetworkSettings, etc.

Pour rendre la sortie plus lisible ou pour extraire des informations spécifiques, vous pouvez rediriger la sortie vers des outils comme jq (un processeur JSON en ligne de commande léger et flexible). Cependant, pour ce lab, nous nous concentrerons sur la commande de base docker inspect.

Après avoir inspecté le conteneur, vous pouvez l'arrêter et le supprimer pour nettoyer votre environnement.

docker stop my-running-container
docker rm my-running-container
  • docker stop my-running-container : Cette commande arrête le conteneur en cours d'exécution.
  • docker rm my-running-container : Cette commande supprime le conteneur arrêté.

Inspecter un conteneur arrêté

Dans cette étape, vous apprendrez qu'il est également possible d'inspecter des conteneurs qui ne sont pas actuellement en cours d'exécution. La commande docker inspect fonctionne aussi bien sur les conteneurs actifs qu'arrêtés, fournissant ainsi accès à leur configuration et à leur dernier état.

Commençons par exécuter un conteneur simple qui s'arrêtera après un court instant.

docker run --name my-stopped-container ubuntu sleep 5

Dans cette commande :

  • docker run : Exécute un nouveau conteneur.
  • --name my-stopped-container : Attribue un nom au conteneur.
  • ubuntu : L'image à utiliser.
  • sleep 5 : La commande exécutée dans le conteneur, qui le fera s'arrêter après 5 secondes.

Attendez quelques secondes que le conteneur termine l'exécution de la commande sleep 5 et s'arrête. Vous pouvez vérifier que le conteneur est arrêté en listant tous les conteneurs (y compris ceux arrêtés) avec docker ps -a.

docker ps -a

Vous devriez voir my-stopped-container dans la liste avec un statut indiquant qu'il s'est arrêté.

Maintenant, vous pouvez inspecter le conteneur arrêté en utilisant la commande docker inspect, comme vous l'avez fait avec le conteneur actif dans l'étape précédente.

docker inspect my-stopped-container

Vous verrez à nouveau une sortie JSON détaillée. Notez que la section State affichera des informations sur le statut de sortie du conteneur et quand il s'est terminé.

L'inspection des conteneurs arrêtés est utile pour déboguer ou comprendre pourquoi un conteneur s'est arrêté.

Enfin, nettoyez le conteneur arrêté.

docker rm my-stopped-container

Formater la sortie d'inspection en JSON

Dans cette étape, vous apprendrez comment formater la sortie de la commande docker inspect spécifiquement sous forme de tableau JSON. Ceci est particulièrement utile lors de l'inspection simultanée de plusieurs objets (comme des conteneurs ou des images), car cela fournit une sortie structurée pouvant être facilement analysée par d'autres outils ou scripts.

Commençons par exécuter deux conteneurs simples qui resteront actifs.

docker run -d --name container1 ubuntu sleep infinity
docker run -d --name container2 ubuntu sleep infinity

Maintenant, inspectons les deux conteneurs et formatons la sortie sous forme de tableau JSON. Nous pouvons le faire en fournissant plusieurs noms de conteneurs à la commande docker inspect.

docker inspect container1 container2

La sortie sera un tableau JSON unique contenant les détails d'inspection pour container1 et container2. Chaque élément du tableau est l'objet JSON pour un conteneur individuel.

Ce format est celui par défaut lors de l'inspection de plusieurs objets. C'est une manière standard de représenter une liste de données structurées.

Après l'inspection, arrêtez et supprimez les conteneurs.

docker stop container1 container2
docker rm container1 container2

Formater la sortie d'inspection avec un template Go

Dans cette étape, vous apprendrez à utiliser des templates Go pour formater la sortie de la commande docker inspect. Cela vous permet d'extraire des informations spécifiques du résultat JSON détaillé et de les afficher dans un format personnalisé.

Commençons par exécuter un conteneur qui restera actif.

docker run -d --name my-templated-container ubuntu sleep infinity

Maintenant, inspectons ce conteneur et utilisons un template Go pour afficher uniquement son adresse IP. L'adresse IP se trouve dans le champ NetworkSettings.IPAddress de la sortie d'inspection.

docker inspect --format '{{.NetworkSettings.IPAddress}}' my-templated-container

Dans cette commande :

  • --format '{{.NetworkSettings.IPAddress}}' : Ce flag spécifie le format en utilisant un template Go.
    • {{...}} : Ces doubles accolades dénotent une action dans le template Go.
    • . : Représente l'objet racine inspecté (le conteneur).
    • NetworkSettings : Accède au champ NetworkSettings dans l'objet racine.
    • IPAddress : Accède au champ IPAddress dans l'objet NetworkSettings.

Le résultat de cette commande sera uniquement l'adresse IP du conteneur.

Vous pouvez utiliser des templates Go pour extraire diverses informations. Par exemple, pour obtenir le nom et l'ID du conteneur :

docker inspect --format 'Name: {{.Name}}, ID: {{.Id}}' my-templated-container

Cela affichera quelque chose comme Name: /my-templated-container, ID: <container_id>.

Les templates Go offrent des capacités de formatage puissantes, incluant des conditions, des boucles et des fonctions. Cependant, pour cet exemple basique, nous nous contentons d'accéder à des champs.

Après l'inspection, arrêtez et supprimez le conteneur.

docker stop my-templated-container
docker rm my-templated-container

Afficher les informations de taille des conteneurs

Dans cette étape, vous apprendrez comment afficher les informations de taille de vos conteneurs Docker. Cela peut être utile pour surveiller l'utilisation du disque et comprendre l'empreinte de vos conteneurs.

Par défaut, la commande docker ps n'affiche pas la taille des conteneurs. Pour inclure ces informations, vous pouvez utiliser le flag --size ou -s.

Commençons par exécuter un conteneur simple.

docker run -d --name my-size-container ubuntu sleep infinity

Maintenant, listons les conteneurs en cours d'exécution avec les informations de taille.

docker ps --size

ou

docker ps -s

Dans le résultat, vous verrez une colonne supplémentaire intitulée SIZE. Cette colonne affiche deux valeurs :

  1. La taille de la couche accessible en écriture du conteneur (les modifications apportées au système de fichiers du conteneur depuis sa création).
  2. La taille totale du conteneur, qui inclut la taille des couches de l'image plus la couche accessible en écriture.

La taille de la couche accessible en écriture est souvent petite pour les conteneurs simples qui n'écrivent pas beaucoup de données. La taille totale sera plus importante car elle inclut la taille de l'image de base.

Vous pouvez également voir les informations de taille en listant tous les conteneurs (y compris ceux arrêtés) avec docker ps -a --size.

docker ps -a --size

Cela est utile pour voir la taille des conteneurs qui se sont arrêtés mais n'ont pas encore été supprimés.

Comprendre la taille des conteneurs est important pour gérer l'espace disque sur votre hôte Docker.

Enfin, arrêtez et supprimez le conteneur.

docker stop my-size-container
docker rm my-size-container

Résumé

Dans ce lab, vous avez appris à utiliser la commande docker inspect pour visualiser des informations détaillées sur les conteneurs Docker. Vous avez pratiqué l'inspection de conteneurs à la fois en cours d'exécution et arrêtés, constatant que la commande fournit des données complètes quel que soit l'état du conteneur.

De plus, vous avez exploré comment formater la sortie de docker inspect, notamment en affichant tous les détails au format JSON et en utilisant des templates Go pour extraire et afficher des informations spécifiques. Enfin, vous avez appris à utiliser le flag --size pour inclure les informations de taille des conteneurs dans la sortie d'inspection.