Comment utiliser la commande docker compose ls pour lister les projets Compose

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 compose ls pour lister et gérer vos projets Docker Compose. Nous commencerons par configurer un exemple de projet Compose, incluant l'installation de Docker Compose si nécessaire, la création d'un fichier docker-compose.yml et le démarrage du projet.

Après la configuration du projet, vous explorerez différentes méthodes pour lister vos projets Compose en utilisant docker compose ls. Cela inclut le listing des projets en cours d'exécution uniquement, le listing de tous les projets (y compris ceux arrêtés), l'affichage des noms de projets uniquement et le filtrage des projets selon des critères spécifiques. À la fin de ce lab, vous maîtriserez l'utilisation de docker compose ls pour obtenir une visibilité sur vos environnements Compose.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") subgraph Lab Skills docker/ls -.-> lab-555083{{"Comment utiliser la commande docker compose ls pour lister les projets Compose"}} docker/ps -.-> lab-555083{{"Comment utiliser la commande docker compose ls pour lister les projets Compose"}} docker/pull -.-> lab-555083{{"Comment utiliser la commande docker compose ls pour lister les projets Compose"}} end

Démarrer un projet Compose exemple

Dans cette étape, nous allons apprendre à démarrer un projet Compose exemple. Avant de pouvoir utiliser Docker Compose, nous devons l'installer. Comme l'environnement VM LabEx ne dispose pas de Docker Compose préinstallé, nous allons d'abord l'installer.

Nous allons télécharger le binaire Docker Compose et le rendre exécutable.

sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Après l'installation, nous pouvons vérifier celle-ci en contrôlant la version de Docker Compose.

docker-compose --version

Vous devriez voir les informations de version s'afficher dans la console, confirmant que Docker Compose est correctement installé.

Maintenant, créons un projet Compose simple. Nous allons créer un répertoire pour notre projet puis y créer un fichier docker-compose.yml. Ce fichier définira les services de notre application.

D'abord, créez un répertoire nommé my-compose-app.

mkdir ~/project/my-compose-app
cd ~/project/my-compose-app

Ensuite, créez un fichier nommé docker-compose.yml dans le répertoire ~/project/my-compose-app en utilisant l'éditeur nano.

nano docker-compose.yml

Ajoutez le contenu suivant au fichier docker-compose.yml. Ce fichier définit un service unique nommé web utilisant l'image nginx.

version: "3.8"
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

Sauvegardez le fichier et quittez l'éditeur nano (Appuyez sur Ctrl + X, puis Y, puis Entrée).

Avant de démarrer le service, assurons-nous que l'image nginx:latest est disponible localement. Nous pouvons récupérer l'image avec la commande docker pull.

docker pull nginx:latest

Maintenant que nous avons le fichier docker-compose.yml et l'image nécessaire, nous pouvons démarrer le projet Compose avec la commande docker-compose up. Le flag -d exécute les services en mode détaché, c'est-à-dire en arrière-plan.

docker-compose up -d

Cette commande va créer et démarrer le service web tel que défini dans le fichier docker-compose.yml. Vous devriez voir une sortie indiquant que le service est en cours de création et de démarrage.

Pour vérifier que le service fonctionne, vous pouvez utiliser la commande docker ps pour lister les conteneurs en cours d'exécution. Vous devriez voir un conteneur pour le service web.

docker ps

Vous pouvez également accéder au serveur web Nginx en ouvrant un navigateur web et en naviguant vers l'adresse IP de votre VM LabEx. Comme nous avons mappé le port 80 du conteneur sur le port 80 de l'hôte, vous devriez voir la page d'accueil par défaut de Nginx.

Lister les projets Compose en cours avec docker compose ls

Dans l'étape précédente, nous avons démarré un projet Compose exemple nommé my-compose-app. Maintenant, nous allons apprendre à lister les projets Compose en cours d'exécution en utilisant la commande docker compose ls.

La commande docker compose ls permet de lister tous les projets Compose. Par défaut, elle n'affiche que les projets en cours d'exécution.

Assurez-vous de vous trouver dans le répertoire ~/project/my-compose-app où se trouve votre fichier docker-compose.yml.

cd ~/project/my-compose-app

Maintenant, exécutez la commande docker compose ls.

docker compose ls

Vous devriez voir une sortie similaire à ceci :

NAME              STATUS    CONFIG FILES
my-compose-app    running   docker-compose.yml

Cette sortie indique qu'il y a un projet Compose nommé my-compose-app en cours d'exécution, utilisant le fichier de configuration docker-compose.yml.

La commande docker compose ls est un moyen rapide de voir quels projets Compose sont actuellement actifs et exécutent des conteneurs.

Lister tous les projets Compose (y compris arrêtés) avec docker compose ls -a

Dans l'étape précédente, nous avons listé les projets Compose en cours d'exécution. Par défaut, docker compose ls n'affiche que les projets ayant au moins un conteneur actif. Pour voir tous les projets Compose, y compris ceux qui sont arrêtés, nous devons utiliser le flag -a.

D'abord, arrêtons le projet my-compose-app que nous avons démarré initialement. Assurez-vous d'être dans le répertoire ~/project/my-compose-app.

cd ~/project/my-compose-app

Maintenant, arrêtez le projet avec la commande docker-compose down. Cette commande stoppe et supprime les conteneurs, réseaux et volumes créés par docker-compose up.

docker-compose down

Vous devriez voir une sortie indiquant que les services et ressources sont en cours d'arrêt et de suppression.

Maintenant que le projet est arrêté, essayons à nouveau de lister les projets Compose avec la commande par défaut docker compose ls.

docker compose ls

Cette fois, vous ne devriez pas voir le projet my-compose-app dans la liste car il est arrêté.

Utilisons maintenant la commande docker compose ls -a pour lister tous les projets Compose, y compris ceux qui sont arrêtés.

docker compose ls -a

Vous devriez maintenant voir une sortie similaire à :

NAME              STATUS     CONFIG FILES
my-compose-app    exited     docker-compose.yml

Cette sortie montre que le projet my-compose-app existe, même si son statut est exited (arrêté). Le flag -a est utile pour voir tous les projets Compose définis sur votre système, quel que soit leur état actuel.

Lister uniquement les noms de projets avec docker compose ls -q

Dans les étapes précédentes, nous avons listé les projets Compose avec leur statut et fichiers de configuration. Parfois, vous pourriez avoir besoin uniquement d'une liste des noms de projets, par exemple pour l'utiliser dans un script. La commande docker compose ls -q permet de faire cela.

Le flag -q signifie "quiet" (silencieux) et supprime toute sortie à l'exception des noms de projets.

Assurez-vous d'être dans le répertoire ~/project/my-compose-app.

cd ~/project/my-compose-app

Maintenant, exécutez la commande docker compose ls -q.

docker compose ls -q

Vous devriez voir uniquement le nom du projet Compose affiché dans la console :

my-compose-app

Ceci est utile lorsque vous souhaitez obtenir une liste propre de noms de projets sans information supplémentaire. Vous pouvez combiner le flag -q avec le flag -a pour lister les noms de tous les projets Compose, y compris ceux qui sont arrêtés.

Essayons cela :

docker compose ls -a -q

Vous devriez toujours voir :

my-compose-app

Ceci confirme que le flag -q n'affiche que les noms de projets, que le projet soit en cours d'exécution ou arrêté lorsqu'il est combiné avec -a.

Filtrer les projets Compose avec docker compose ls --filter

Dans cette dernière étape, nous allons explorer comment filtrer la sortie de docker compose ls en utilisant le flag --filter. Ceci est particulièrement utile lorsque vous avez de nombreux projets Compose et souhaitez en trouver des spécifiques selon certains critères.

Le flag --filter vous permet de spécifier des paires clé-valeur pour filtrer les résultats. Un filtre couramment utilisé est par status (statut).

D'abord, assurons-nous que notre projet my-compose-app est bien arrêté. Nous l'avons stoppé à l'étape précédente, mais il est bon de le confirmer.

cd ~/project/my-compose-app
docker-compose down

Maintenant, utilisons le flag --filter pour lister uniquement les projets Compose en cours d'exécution. Comme notre projet est arrêté, cette commande ne devrait rien afficher.

docker compose ls --filter status=running

Vous ne devriez voir aucune sortie, car aucun projet Compose n'est en cours d'exécution.

Utilisons maintenant le flag --filter pour lister uniquement les projets Compose arrêtés.

docker compose ls --filter status=exited

Vous devriez voir une sortie similaire à :

NAME              STATUS     CONFIG FILES
my-compose-app    exited     docker-compose.yml

Ceci montre que le projet my-compose-app est listé car son statut est exited (arrêté).

Vous pouvez également filtrer selon d'autres critères, comme le name (nom) du projet. Filtrons pour le projet nommé my-compose-app.

docker compose ls --filter name=my-compose-app

Ceci devrait également afficher le projet my-compose-app :

NAME              STATUS     CONFIG FILES
my-compose-app    exited     docker-compose.yml

Le flag --filter offre un moyen puissant de gérer et visualiser vos projets Compose, particulièrement dans des environnements avec de nombreuses applications différentes définies par des fichiers Compose.

Résumé

Dans ce lab, nous avons appris à utiliser la commande docker compose ls pour lister les projets Docker Compose. Nous avons commencé par installer Docker Compose, puis créé et démarré un projet Compose exemple en utilisant un fichier docker-compose.yml et la commande docker-compose up -d.

Nous avons ensuite exploré les différentes options de la commande docker compose ls. Nous avons utilisé :

  • docker compose ls pour lister les projets en cours d'exécution
  • docker compose ls -a pour lister tous les projets y compris ceux arrêtés
  • docker compose ls -q pour n'afficher que les noms des projets
  • docker compose ls --filter pour filtrer les projets selon des critères spécifiques

Ces étapes ont démontré la polyvalence de la commande docker compose ls pour gérer et inspecter des projets Compose.