Objectifs
- Comprendre pourquoi Compose décrit plusieurs services ensemble.
- Lire les sections services, ports, volumes, networks et environment.
- Démarrer, observer et arrêter un projet avec docker compose.
- Distinguer stop, down et la suppression volontaire des volumes.
Orchestrer localement avec Docker Compose
Docker Compose décrit une application multi-container dans un fichier YAML, généralement compose.yaml. Il fournit un nom de projet, crée les ressources nécessaires et applique les dépendances déclarées.
Chaque entrée de services décrit un container logique. Les noms de services deviennent aussi des noms DNS sur les réseaux Compose partagés.
Un premier fichier compose.yaml
Cet exemple déclare un service web, choisit une image et publie le port HTTP. Compose crée le container et le réseau de projet lors de up.
services:
web:
image: nginx:alpine
ports:
- "8080:80"Deux services, un volume et un réseau
Le service web partage app-network avec cache et publie son port. Redis conserve ses données dans le volume nommé cache-data. environment transmet ici une variable non sensible au processus.
services:
web:
image: nginx:alpine
ports:
- "8080:80"
environment:
APP_ENV: development
networks:
- app-network
cache:
image: redis:7-alpine
volumes:
- cache-data:/data
networks:
- app-network
volumes:
cache-data:
networks:
app-network:environment convient à une configuration non sensible. Les mots de passe et tokens doivent utiliser une solution de secrets adaptée plutôt que d’être écrits dans compose.yaml.
Piloter le projet
docker compose up crée ou met à jour les ressources et reste attaché par défaut. -d lance en arrière-plan. ps et logs servent à l’observation ; logs -f suit les nouvelles sorties.
docker compose up
docker compose up -d
docker compose ps
docker compose logs
docker compose logs -fdocker compose stop
docker compose start
docker compose restartUtilisez la syntaxe Compose V2 docker compose. L’ancien binaire autonome docker-compose peut encore exister dans certains environnements, mais il n’est pas la référence privilégiée ici.
Différence entre stop et down
stop arrête les containers sans les supprimer : start peut les relancer. down arrête puis supprime les containers et réseaux créés par le projet, tout en conservant normalement les volumes nommés.
docker compose downdocker compose down -v-v supprime aussi les volumes déclarés et leurs données. Ne l’utilisez pas comme nettoyage par défaut : identifiez et sauvegardez d’abord les volumes concernés.
Bonnes pratiques
Versionnez compose.yaml, utilisez des noms de services explicites et séparez la configuration sensible. Validez les changements avant de recréer une stack contenant des données.
- Utiliser des tags d’image explicites et maintenus.
- Déclarer les volumes et réseaux pour rendre l’architecture lisible.
- Consulter docker compose ps et logs après chaque déploiement local.
Erreur fréquente : lancer down -v sans inventorier les données
Mini résumé
- compose.yaml décrit les services et leurs ressources partagées.
- docker compose up crée ou met à jour le projet.
- stop conserve les containers ; down les supprime avec les réseaux du projet.
- down -v supprime aussi les volumes et doit rester volontaire.
Mini quiz
Trois questions pour vérifier les notions essentielles de la leçon.