📚 Docker pour les débutants : Le Chantier Naval

5.1 : Pourquoi Docker Compose ? (Le passage du script au descriptif)

📄 Article ⏱ 5 ✅ Gratuit

Introduction

Jusqu’ici, nous avons déployé nos conteneurs à la main avec docker run. C’est parfait pour comprendre comment tout fonctionne, mais ça devient vite compliqué dès qu’on a plusieurs conteneurs à orchestrer.

Imaginez votre stack PHP/MariaDB avec Redis, un conteneur Nginx et Traefik… Avec docker run, il faudrait lancer une dizaine de commandes et se souvenir des --network, -v, -e, etc.

C’est là que Docker Compose entre en jeu.

L’idée : du script au descriptif

  • Avec Compose, vous décrivez votre stack dans un fichier YAML (docker-compose.yml).
  • Chaque service (web, base, cache…) est défini avec :
    • l’image à utiliser
    • les volumes et réseaux
    • les variables d’environnement
    • les ports exposés
  • Avantages :
    • Déploiement simple : docker-compose up -d lance tout.
    • Maintenabilité : plus besoin de retenir 10 commandes compliquées.
    • Portabilité : le fichier YAML peut être partagé ou versionné.

Analogie : Docker run = écrire chaque commande à la main. Docker Compose = fournir un plan de chantier que Docker suit automatiquement.

Installation

Windows & Mac

  • Si vous utilisez Docker Desktop, Compose est déjà inclus.
  • Vérifiez la version :
docker compose version

Linux

  • Sur Linux, Docker Compose est maintenant disponible via le plugin Docker officiel.
  • Assurez-vous d’avoir la dernière version de Docker Engine et activez le plugin :
docker compose version
  • Si vous avez un message d’erreur, installez le plugin :
sudo apt update
sudo apt install docker-compose-plugin
docker compose version

La syntaxe moderne est docker compose (sans tiret). La commande docker-compose traditionnelle est dépréciée.


📌 À retenir

  • Docker Compose simplifie la vie pour gérer des stacks multi-conteneurs.
  • Il transforme vos commandes répétitives en déclaration structurée.
  • Windows et Mac : Compose déjà intégré dans Docker Desktop.
  • Linux : utilisez le plugin officiel Docker Compose et la syntaxe docker compose.