Comment utiliser la commande docker container ls pour lister et filtrer les conteneurs

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 efficacement la commande docker container ls (également connue sous le nom de docker ps) pour lister et gérer vos conteneurs Docker. Vous commencerez par lister tous les conteneurs actuellement en cours d'exécution, puis étendrez la liste pour inclure les conteneurs arrêtés.

De plus, vous explorerez comment filtrer la liste des conteneurs en fonction de différents critères tels que le statut et le nom, et apprendrez à formater la sortie pour afficher uniquement les informations spécifiques dont vous avez besoin. Enfin, vous découvrirez comment vérifier rapidement l'utilisation du disque par vos conteneurs.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/SystemManagementGroup -.-> docker/system("Manage Docker") subgraph Lab Skills docker/run -.-> lab-555113{{"Comment utiliser la commande docker container ls pour lister et filtrer les conteneurs"}} docker/ps -.-> lab-555113{{"Comment utiliser la commande docker container ls pour lister et filtrer les conteneurs"}} docker/pull -.-> lab-555113{{"Comment utiliser la commande docker container ls pour lister et filtrer les conteneurs"}} docker/system -.-> lab-555113{{"Comment utiliser la commande docker container ls pour lister et filtrer les conteneurs"}} end

Lister tous les conteneurs en cours d'exécution

Dans cette étape, vous apprendrez à lister tous les conteneurs Docker actuellement en cours d'exécution. Il s'agit d'une commande fondamentale pour gérer vos conteneurs et comprendre ce qui est actif sur votre système.

Commencez par télécharger une image simple que nous utiliserons pour exécuter un conteneur. Nous utiliserons l'image hello-world, une image très légère conçue pour tester votre installation Docker.

docker pull hello-world

Vous devriez voir une sortie indiquant que l'image est en cours de téléchargement et d'extraction.

Maintenant, exécutons un conteneur avec cette image. La commande docker run crée et démarre un nouveau conteneur.

docker run hello-world

Cette commande exécutera le conteneur hello-world. Le conteneur affichera un message puis s'arrêtera. Même s'il s'arrête, il est toujours considéré comme un conteneur existant sur votre système, simplement non actif.

Pour voir uniquement les conteneurs actuellement en cours d'exécution, utilisez la commande docker ps.

docker ps

Comme le conteneur hello-world s'est arrêté immédiatement après son exécution, la commande docker ps n'affichera probablement rien sous les colonnes "CONTAINER ID", "IMAGE", "COMMAND", etc., car aucun conteneur n'est actuellement en cours d'exécution.

Exécutons maintenant un conteneur qui reste actif. Nous utiliserons l'image ubuntu avec une commande simple qui maintient le conteneur en vie. Commencez par télécharger l'image ubuntu.

docker pull ubuntu

Maintenant, exécutez un conteneur Ubuntu qui reste actif en lançant la commande sleep infinity. Le flag -d exécute le conteneur en mode détaché (en arrière-plan).

docker run -d ubuntu sleep infinity

Vous verrez une longue chaîne de caractères, qui correspond à l'ID du conteneur. Cela indique que le conteneur a été démarré en arrière-plan.

Exécutez à nouveau docker ps pour voir le conteneur en cours d'exécution.

docker ps

Cette fois, vous devriez voir une sortie listant le conteneur Ubuntu que vous venez de démarrer. La sortie inclut des informations comme l'ID du conteneur, l'image utilisée, la commande exécutée, sa date de création, son statut, les ports et un nom généré aléatoirement.

La commande docker ps est essentielle pour vérifier rapidement quels conteneurs sont actifs et consomment des ressources sur votre système.

Afficher tous les conteneurs y compris ceux arrêtés

Dans l'étape précédente, vous avez appris à lister uniquement les conteneurs en cours d'exécution avec docker ps. Cependant, il est parfois nécessaire de voir tous les conteneurs présents sur votre système, y compris ceux qui se sont arrêtés. Cela est utile pour nettoyer d'anciens conteneurs ou inspecter ceux qui se sont terminés avec une erreur.

Pour lister tous les conteneurs, qu'ils soient en cours d'exécution ou arrêtés, utilisez la commande docker ps avec l'option -a. Le -a signifie "all" (tous).

Essayons cette commande maintenant.

docker ps -a

Vous devriez voir une liste incluant le conteneur Ubuntu en cours d'exécution de l'étape précédente, ainsi que le conteneur hello-world qui s'est terminé après son exécution. La colonne "STATUS" indiquera si un conteneur est "Up" (en cours d'exécution) ou "Exited" (arrêté).

Le résultat fournit les mêmes informations que docker ps (ID du conteneur, image, commande, date de création, statut, ports et nom), mais pour tous les conteneurs, quel que soit leur état actuel.

Cette commande est très utile pour obtenir une vue d'ensemble complète de tous les conteneurs sur votre système. Vous pouvez voir quels conteneurs ont été créés, même s'ils ne sont pas actuellement actifs.

Filtrer les conteneurs par statut et nom

Dans cette étape, vous apprendrez à filtrer la liste des conteneurs en fonction de leur statut ou de leur nom. Cette fonctionnalité est particulièrement utile lorsque vous avez de nombreux conteneurs et souhaitez n'en visualiser qu'un sous-ensemble spécifique.

La commande docker ps prend en charge l'option --filter qui vous permet de spécifier des critères de filtrage pour lister les conteneurs.

Commençons par lister uniquement les conteneurs en cours d'exécution à l'aide d'un filtre. Le statut d'un conteneur en cours d'exécution est running.

docker ps --filter "status=running"

Cette commande devrait afficher le même résultat que docker ps dans l'Étape 1, ne listant que le conteneur Ubuntu actuellement en cours d'exécution.

Maintenant, filtrons les conteneurs qui se sont arrêtés. Le statut d'un conteneur arrêté est exited. N'oubliez pas d'inclure l'option -a pour voir tous les conteneurs, sinon le filtre ne trouvera pas les conteneurs arrêtés s'ils ne sont pas listés par défaut.

docker ps -a --filter "status=exited"

Cette commande devrait afficher le conteneur hello-world que vous avez exécuté dans l'Étape 1, car son statut est "Exited".

Vous pouvez également filtrer par nom de conteneur. Lorsque vous exécutez un conteneur sans spécifier de nom via l'option --name, Docker lui attribue un nom aléatoire. Vous pouvez trouver le nom de votre conteneur Ubuntu en cours d'exécution en utilisant docker ps. Consultez la colonne "NAMES".

Supposons que le nom de votre conteneur Ubuntu soit quelque chose comme agitated_hoover. Vous pouvez filtrer par ce nom :

docker ps -a --filter "name=agitated_hoover"

Remplacez agitated_hoover par le nom réel de votre conteneur Ubuntu. Cette commande listera le conteneur portant ce nom spécifique, quel que soit son statut (bien que dans ce cas, il devrait être en cours d'exécution).

Vous pouvez également combiner plusieurs filtres. Par exemple, pour trouver un conteneur en cours d'exécution avec un nom spécifique :

docker ps --filter "status=running" --filter "name=agitated_hoover"

Là encore, remplacez agitated_hoover par le nom de votre conteneur.

Le filtrage est une méthode puissante pour gérer et inspecter vos conteneurs, particulièrement dans des environnements comportant de nombreux conteneurs.

Formater la sortie pour afficher des informations spécifiques

Dans cette étape, vous apprendrez à personnaliser la sortie de la commande docker ps pour n'afficher que les informations dont vous avez besoin. Ceci est particulièrement utile pour des scripts ou lorsque vous souhaitez une vue concise de vos conteneurs.

La commande docker ps prend en charge l'option --format qui permet de spécifier le format de sortie en utilisant la syntaxe des templates Go.

Commençons par lister uniquement les ID des conteneurs.

docker ps -a --format "{{.ID}}"

Cette commande affichera une liste d'ID de conteneurs, un par ligne, pour tous les conteneurs (en cours d'exécution et arrêtés). Le {{.ID}} est un placeholder de template Go représentant l'ID du conteneur.

Maintenant, listons l'ID du conteneur et le nom de l'image, séparés par une tabulation.

docker ps -a --format "{{.ID}}\t{{.Image}}"

Vous devriez voir une sortie du type [ID conteneur] [nom image] pour chaque conteneur. \t représente un caractère de tabulation dans le template Go.

Vous pouvez inclure d'autres champs. Voici quelques champs couramment utilisés :

  • .ID : ID du conteneur
  • .Image : Nom de l'image
  • .Command : Commande exécutée
  • .CreatedAt : Date de création
  • .Status : Statut du conteneur
  • .Ports : Ports exposés
  • .Names : Noms des conteneurs

Listons maintenant le nom du conteneur et son statut.

docker ps -a --format "{{.Names}}: {{.Status}}"

Cette commande affichera quelque chose comme [nom conteneur]: [statut] pour chaque conteneur.

Vous pouvez également utiliser le format table pour obtenir une sortie plus lisible avec des en-têtes, similaire à la sortie par défaut mais avec uniquement les colonnes que vous spécifiez.

docker ps -a --format "table {{.ID}}\t{{.Image}}\t{{.Names}}\t{{.Status}}"

Cette commande affichera un tableau avec les colonnes ID, Image, Noms et Statut pour tous les conteneurs.

Le formatage de la sortie vous donne un contrôle précis sur les informations affichées par docker ps, facilitant ainsi leur analyse et leur utilisation dans des scripts ou pour des besoins de reporting spécifiques.

Afficher l'utilisation du disque par les conteneurs

Dans cette dernière étape, vous apprendrez à visualiser l'espace disque utilisé par vos conteneurs Docker, images et volumes. Ceci est important pour surveiller les ressources de votre système et identifier où l'espace disque est consommé par Docker.

La commande docker system df fournit un résumé de l'espace disque utilisé par les objets Docker. Le terme df signifie "disk free" (espace disque libre), similaire à la commande Linux standard.

Exécutons la commande pour voir l'utilisation du disque :

docker system df

Le résultat affichera un résumé comprenant :

  • Images : La taille totale de toutes les images Docker sur votre système.
  • Conteneurs : La taille totale de la couche accessible en écriture pour tous les conteneurs. Cela correspond à l'espace utilisé par les modifications apportées au système de fichiers du conteneur.
  • Volumes locaux : La taille totale de tous les volumes locaux. Les volumes sont utilisés pour le stockage persistant de données.
  • Cache de construction : La taille du cache de construction utilisé lors de la création d'images.

Vous verrez des colonnes comme "Total", "Active", "Size" et "Reclaimable" :

  • Total : Le nombre total ou la taille des objets.
  • Active : Le nombre d'objets actuellement utilisés (par exemple, conteneurs en cours d'exécution, images utilisées par des conteneurs en cours d'exécution).
  • Size : L'espace disque total consommé par les objets.
  • Reclaimable : La quantité d'espace disque pouvant être libérée en supprimant les objets inutilisés.

Pour obtenir une vue plus détaillée, vous pouvez utiliser l'option -v pour une sortie verbose :

docker system df -v

Cela fournira une répartition plus détaillée, incluant une liste des images, conteneurs et volumes individuels avec leurs tailles respectives.

Comprendre l'utilisation du disque par Docker est crucial pour maintenir un environnement Docker sain et éviter que votre disque ne se remplisse. Vous pouvez utiliser les informations de docker system df pour décider quand nettoyer les images, conteneurs ou volumes inutilisés.

Résumé

Dans ce lab, vous avez appris à utiliser la commande docker container ls (également connue sous le nom docker ps) pour lister les conteneurs Docker. Vous avez commencé par lister uniquement les conteneurs en cours d'exécution avec docker ps, puis vous avez appris à afficher tous les conteneurs, y compris ceux arrêtés, en ajoutant l'option -a.

De plus, vous avez exploré comment filtrer la liste des conteneurs selon des critères tels que le statut et le nom en utilisant l'option --filter. Vous avez également appris à personnaliser le format de sortie pour afficher des informations spécifiques avec l'option --format, ainsi qu'à visualiser l'utilisation du disque par les conteneurs avec la commande docker system df.