Docker Compose : orchestrer plusieurs conteneurs
Docker Compose permet de définir et gérer des applications multi-conteneurs à l’aide d’un fichier YAML.
Structure d’un fichier docker-compose.yml
Exemple avec WordPress et MariaDB :
services:
wordpress:
image: wordpress:latest
container_name: wordpress
restart: unless-stopped
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wp_user
WORDPRESS_DB_PASSWORD: wp_password
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress_data:/var/www/html
depends_on:
- db
db:
image: mariadb:latest
container_name: wordpress_db
restart: unless-stopped
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wp_user
MYSQL_PASSWORD: wp_password
MYSQL_ROOT_PASSWORD: root_password
volumes:
- db_data:/var/lib/mysql
volumes:
wordpress_data:
db_data:
Commandes Docker Compose
Lancer les services définis dans le fichier :
$ docker compose up -d
Arrêter les services :
$ docker compose down
Voir l’état des services :
$ docker compose ps
Voir les logs :
$ docker compose logs
$ docker compose logs -f wordpress # suivre un service spécifique
Reconstruire les images :
$ docker compose build
Mettre à jour les conteneurs avec les nouvelles images :
$ docker compose pull
$ docker compose up -d
Arrêter et supprimer les volumes
Pour supprimer également les volumes (données persistantes) :
$ docker compose down -v