Qu'est-ce que Docker Compose ?
Docker Compose est un outil qui permet de définir et exécuter des applications multi-conteneurs Docker. Au lieu de lancer chaque conteneur manuellement avec des commandes docker run complexes, vous décrivez toute votre stack dans un fichier YAML (docker-compose.yml) et la démarrez avec une seule commande : docker compose up. C'est devenu l'outil standard pour les environnements de développement local, les tests d'intégration et les déploiements simples.
Structurer un fichier docker-compose.yml
Un fichier docker-compose.yml se compose de plusieurs sections : version (obsolète depuis Compose V2), services (les conteneurs à lancer), volumes (le stockage persistant), networks (les réseaux internes). Chaque service définit une image Docker, les ports exposés, les variables d'environnement, les volumes montés et les dépendances vers d'autrès services (depends_on). La syntaxe YAML impose une indentation stricte avec des espaces (jamais de tabulations).
Bonnes pratiques Docker Compose
Utilisez toujours des versions d'images explicites (mysql:8.0 plutôt que mysql:latest) pour la reproductibilité. Externalisez les variables sensibles dans un fichier .env. Utilisez des volumes nommés pour les données persistantes (bases de données). Définissez des health checks pour que les services dépendants attendent que la base de données soit prête. Limitez les ressources (CPU, mémoire) pour éviter qu'un service ne consomme tout. Utilisez des profils pour séparer les services de développement et de production.