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 -dlance tout. - Maintenabilité : plus besoin de retenir 10 commandes compliquées.
- Portabilité : le fichier YAML peut être partagé ou versionné.
- Déploiement simple :
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 commandedocker-composetraditionnelle 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.