Comment utiliser la commande docker compose config pour valider et visualiser les fichiers 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 la commande docker-compose config pour valider et visualiser vos fichiers Docker Compose. Nous commencerons par installer Docker Compose, puis nous créerons un fichier compose de base.

Vous utiliserez ensuite la commande docker-compose config pour valider la syntaxe du fichier compose, visualiser la configuration résolue aux formats YAML et JSON, et extraire des informations spécifiques comme les noms de services et les noms d'images. Ce lab vous dotera des compétences essentielles pour travailler efficacement avec les fichiers Docker Compose.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker(("Docker")) -.-> docker/DockerfileGroup(["Dockerfile"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ImageOperationsGroup -.-> docker/images("List Images") docker/SystemManagementGroup -.-> docker/info("Display System-Wide Information") docker/SystemManagementGroup -.-> docker/version("Show Docker Version") docker/DockerfileGroup -.-> docker/build("Build Image from Dockerfile") subgraph Lab Skills docker/run -.-> lab-555074{{"Comment utiliser la commande docker compose config pour valider et visualiser les fichiers compose"}} docker/ls -.-> lab-555074{{"Comment utiliser la commande docker compose config pour valider et visualiser les fichiers compose"}} docker/ps -.-> lab-555074{{"Comment utiliser la commande docker compose config pour valider et visualiser les fichiers compose"}} docker/images -.-> lab-555074{{"Comment utiliser la commande docker compose config pour valider et visualiser les fichiers compose"}} docker/info -.-> lab-555074{{"Comment utiliser la commande docker compose config pour valider et visualiser les fichiers compose"}} docker/version -.-> lab-555074{{"Comment utiliser la commande docker compose config pour valider et visualiser les fichiers compose"}} docker/build -.-> lab-555074{{"Comment utiliser la commande docker compose config pour valider et visualiser les fichiers compose"}} end

Valider un fichier compose de base

Dans cette étape, vous apprendrez à valider un fichier Docker Compose de base. Avant de commencer, nous devons installer Docker Compose car il n'est pas préinstallé dans cet environnement.

Tout d'abord, téléchargeons le binaire Docker Compose. Nous allons télécharger la version 1.29.2, qui est une version stable et largement utilisée.

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

Cette commande télécharge le binaire Docker Compose depuis le dépôt GitHub officiel et l'enregistre dans /usr/local/bin/docker-compose. Les parties $(uname -s) et $(uname -m) détectent automatiquement votre système d'exploitation et architecture pour télécharger le bon binaire.

Ensuite, nous devons donner les permissions d'exécution au binaire téléchargé.

sudo chmod +x /usr/local/bin/docker-compose

Cette commande rend la commande docker-compose exécutable.

Maintenant, vérifions l'installation en contrôlant la version.

docker-compose --version

Vous devriez voir une sortie similaire à docker-compose version 1.29.2, build 5becea4c. Cela confirme que Docker Compose est correctement installé.

Créons maintenant un simple fichier Docker Compose. Nous allons créer un fichier nommé docker-compose.yml dans votre répertoire ~/project.

nano ~/project/docker-compose.yml

Ajoutez le contenu suivant au fichier :

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

Il s'agit d'un fichier Docker Compose très basique. Il définit un seul service nommé web qui utilise l'image nginx:latest et mappe le port 80 de l'hôte vers le port 80 du conteneur.

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

Avant d'exécuter le fichier compose, il est recommandé de valider sa syntaxe. Docker Compose fournit une commande pour cela : config.

docker-compose config

Si la syntaxe de votre fichier docker-compose.yml est correcte, cette commande affichera la configuration résolue au format YAML. S'il y a des erreurs de syntaxe, elle affichera un message d'erreur indiquant le problème. Cela vous permet de détecter les erreurs tôt avant de tenter de construire ou d'exécuter vos services.

Afficher la configuration résolue au format YAML

Dans l'étape précédente, nous avons validé la syntaxe de notre fichier docker-compose.yml en utilisant la commande docker-compose config. Par défaut, cette commande affiche la configuration résolue au format YAML. Ceci est utile pour voir la configuration finale que Docker Compose utilisera, incluant les valeurs par défaut ou les fusions depuis plusieurs fichiers compose.

Exécutons à nouveau la commande pour visualiser le résultat. Assurez-vous d'être dans le répertoire ~/project où vous avez créé le fichier docker-compose.yml.

cd ~/project
docker-compose config

Vous devriez voir une sortie similaire à ceci :

services:
  web:
    build:
      context: /home/labex/project
    image: nginx:latest
    ports:
      - published: 80
        target: 80
version: "3.8"

Notez que la sortie inclut une section build avec le context défini sur /home/labex/project. Bien que nous n'ayons pas explicitement défini de section build dans notre docker-compose.yml, Docker Compose ajoute un contexte de build par défaut correspondant au répertoire contenant le fichier compose. Ceci est un exemple montrant comment docker-compose config affiche la configuration résolue, incluant les valeurs par défaut.

Visualiser la configuration résolue au format YAML est utile pour le débogage et permet de comprendre exactement comment Docker Compose interprète votre fichier.

Afficher la configuration résolue au format JSON

Dans l'étape précédente, nous avons vu comment docker-compose config affiche par défaut la configuration résolue au format YAML. Parfois, il peut être utile de visualiser la configuration au format JSON, notamment lorsque vous travaillez avec des outils ou scripts qui traitent du JSON.

La commande docker-compose config dispose d'un indicateur --format qui permet de spécifier le format de sortie. Pour obtenir la sortie au format JSON, nous utilisons --format json.

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

cd ~/project
docker-compose config --format json

Vous devriez voir la configuration résolue affichée dans la console au format JSON. Le résultat ressemblera à ceci (le formatage exact peut légèrement varier) :

{
  "services": {
    "web": {
      "build": {
        "context": "/home/labex/project"
      },
      "image": "nginx:latest",
      "ports": [
        {
          "published": 80,
          "target": 80
        }
      ]
    }
  },
  "version": "3.8"
}

En comparant cette sortie avec le format YAML de l'étape précédente, vous pouvez constater qu'il s'agit de la même configuration mais dans un format de données différent. Les deux formats sont utiles selon vos besoins.

Visualiser la configuration au format JSON peut s'avérer particulièrement utile pour intégrer Docker Compose avec d'autres outils ou pour un traitement programmatique de la configuration.

Afficher uniquement les noms des services

Dans cette étape, nous allons apprendre à utiliser la commande docker-compose config pour afficher uniquement les noms des services définis dans notre fichier compose. Cela peut être utile lorsque vous avez besoin d'une liste rapide des services sans les détails complets de configuration.

La commande docker-compose config dispose d'un indicateur --services qui fait exactement cela. Elle analysera le fichier compose et affichera uniquement les noms des services, un par ligne.

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

cd ~/project
docker-compose config --services

Comme notre fichier docker-compose.yml ne contient actuellement qu'un seul service nommé web, la sortie de cette commande sera :

web

Si vous aviez plusieurs services définis dans votre fichier compose, chaque nom de service serait affiché sur une nouvelle ligne. Par exemple, si vous aviez des services nommés web, db et app, la sortie serait :

web
db
app

Cet indicateur est un moyen pratique de lister rapidement les services définis dans votre projet Docker Compose.

Afficher uniquement les noms d'images

Dans cette dernière étape, nous allons apprendre à utiliser la commande docker-compose config pour afficher uniquement les noms des images utilisées par les services définis dans notre fichier compose. Cela est utile pour visualiser rapidement les images dont dépend votre projet.

La commande docker-compose config dispose d'un indicateur --images qui permet cette fonctionnalité. Elle analysera le fichier compose et affichera uniquement les noms des images, un par ligne.

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

cd ~/project
docker-compose config --images

Comme notre fichier docker-compose.yml utilise l'image nginx:latest pour le service web, la sortie de cette commande sera :

nginx:latest

Si vous aviez plusieurs services utilisant différentes images, chaque nom d'image serait affiché sur une nouvelle ligne. Par exemple, avec des services utilisant nginx:latest, mysql:5.7 et python:3.9, la sortie serait :

nginx:latest
mysql:5.7
python:3.9

Cet indicateur fournit un aperçu rapide des images requises par votre projet Docker Compose.

Résumé

Dans ce lab, vous avez appris à installer Docker Compose en téléchargeant le binaire et en accordant les permissions d'exécution, puis vérifié l'installation en contrôlant la version. Vous avez ensuite créé un fichier docker-compose.yml de base définissant un simple service web utilisant l'image Nginx. Enfin, vous avez utilisé la commande docker-compose config pour valider la syntaxe du fichier compose, vous assurant qu'il est correctement formaté avant le déploiement.