Exercice 01 : Créer un docker-compose.yml de base
🎯 Objectifs
À la fin de cet exercice, vous serez capable de :
- ✅ Écrire un
docker-compose.ymlavec au moins deux services - ✅ Exposer un port, injecter des variables d'environnement et monter un volume
- ✅ Démarrer la stack avec
docker compose up -d - ✅ Vérifier l'état des services avec
docker compose psetdocker compose logs - ✅ Arrêter proprement avec
docker compose down
Durée estimée : 20 min | Difficulté : ⭐⭐⭐⭐☆
📖 Contexte
Docker Compose orchestre plusieurs conteneurs déclarés dans un seul fichier YAML. Un service = une image + sa configuration (ports, env, volumes). La CLI docker compose remplace l'ancien binaire docker-compose depuis Docker 20.10.
📋 Énoncé
Déployez une application web WordPress connectée à une base de données MySQL, entièrement définie dans un docker-compose.yml. Les données MySQL doivent persister entre les redémarrages.
🧭 Déroulement
Tâche 1 : Créer le dossier de travail
Créez un dossier wordpress-stack/ et placez-vous dedans.
Indice :
mkdir wordpress-stack && cd wordpress-stack
Vérification : pwd affiche le chemin vers wordpress-stack/.
Tâche 2 : Déclarer les services
Créez docker-compose.yml avec deux services : db (MySQL 8.0) et wordpress (WordPress latest). Le service wordpress doit exposer le port 8080 sur l'hôte.
Indice : L'image MySQL attend les variables
MYSQL_ROOT_PASSWORD,MYSQL_DATABASE,MYSQL_USERetMYSQL_PASSWORD. WordPress attendWORDPRESS_DB_HOST,WORDPRESS_DB_USER,WORDPRESS_DB_PASSWORDetWORDPRESS_DB_NAME.
Vérification : docker compose config ne retourne aucune erreur de syntaxe.
Tâche 3 : Ajouter un volume nommé
Déclarez un volume nommé db_data monté dans /var/lib/mysql du service db pour persister les données.
Indice : Les volumes nommés se déclarent à la fois dans la clé
volumes:du service et dans la sectionvolumes:de haut niveau du fichier.
Vérification : docker volume ls affiche wordpress-stack_db_data après le démarrage.
Tâche 4 : Démarrer et inspecter la stack
Démarrez la stack en arrière-plan, vérifiez que les deux conteneurs sont running, puis consultez les logs du service wordpress.
Indice :
docker compose up -d,docker compose ps,docker compose logs wordpress.
Vérification : docker compose ps affiche les deux services avec le statut running.
🗂️ Mini-Projet
Complétez les points suivants :
- Le fichier
docker-compose.ymlcontient les servicesdbetwordpress - Le port
8080redirige vers WordPress (accessible dans le navigateur) - Le volume
db_dataest listé pardocker volume ls docker compose logs dbaffiche le démarrage de MySQLdocker compose downarrête et supprime les conteneurs sans supprimer le volume