Compose
Introduction à Docker Compose
Docker Compose est un outil qui simplifie la gestion des applications multi-conteneurs. Il vous permet de définir l'architecture de votre application (services, réseaux, volumes) dans un seul fichier YAML. Au lieu de lancer chaque conteneur individuellement avec des commandes docker run
, vous pouvez démarrer l'ensemble de votre application avec une seule commande :
Cet outil est essentiel pour les environnements de développement et de test, car il garantit que tous les services d'une application (comme un serveur web, une base de données et un cache) démarrent ensemble et sont correctement interconnectés.
La commande docker compose
est maintenant intégrée
Auparavant, docker-compose
était un programme séparé qu'il fallait installer en plus du moteur Docker. Il s'exécutait en tant que docker-compose
.
Aujourd'hui, la commande docker compose
est intégrée nativement à Docker Desktop et aux versions récentes du moteur Docker (à partir de la version 20.10). Vous n'avez plus besoin de l'installer séparément. Elle s'utilise directement via le sous-commande docker compose
.
Ancienne commande :
Nouvelle commande (intégrée) :
Fichier docker-compose.yml
Le cœur de Docker Compose est son fichier de configuration, généralement nommé docker-compose.yml
. Ce fichier définit les services, les réseaux et les volumes de votre application.
Voici un exemple simple d'un fichier docker-compose.yml
pour une application web avec un serveur Nginx et une base de données PostgreSQL :
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
database:
image: postgres:14
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
volumes:
- db_data:/var/lib/postgresql/data
volumes:
db_data:
Dans cet exemple :
services:
: C'est ici que vous définissez chaque conteneur (ou service) de votre application.web
: Représente le conteneur du serveur web Nginx.database
: Représente le conteneur de la base de données PostgreSQL.
volumes:
: Permet de définir les volumes persistants pour vos données. Ici,db_data
est utilisé pour stocker les données de la base de données, assurant qu'elles ne sont pas perdues lorsque le conteneur est arrêté ou supprimé.
Commandes Docker Compose essentielles
Une fois votre fichier docker-compose.yml
prêt, vous pouvez utiliser ces commandes pour gérer votre application :
docker compose up
: Démarre tous les services définis dans votre fichierdocker-compose.yml
. Si les images n'existent pas, Docker les télécharge.docker compose up -d
: Démarre les services en arrière-plan (mode "détaché").docker compose down
: Arrête et supprime les conteneurs, les réseaux et les volumes créés pardocker compose up
.docker compose ps
: Affiche l'état de tous les services.docker compose logs
: Affiche les logs de tous les services. Vous pouvez spécifier un service pour voir ses logs uniquement (ex:docker compose logs web
).