Déployer une application avec Docker Compose
- Docker Engine et Docker Compose installés sur votre machine
- Notions de base sur les conteneurs et les images
- Un terminal avec accès sudo / administrateur
🎯 Objectif du tutoriel
Dans ce guide, vous allez apprendre à déclarer, configurer et lancer une pile applicative complète (Frontend Nginx + Backend API + Base de données) en une seule commande.
Docker Compose permet de centraliser la configuration multi-conteneurs dans un seul fichier déclaratif docker-compose.yml, éliminant le besoin de longues commandes docker run enchaînées.
🛠️ Étape 1 : Préparation du fichier compose
Créez un dossier de travail et préparez votre fichier de configuration principal.
mkdir mon-projet && cd mon-projet
touch docker-compose.yml
Ajoutez le contenu suivant dans votre docker-compose.yml :
version: '3.8'
services:
web:
image: nginx:alpine
ports:
- "8080:80"
restart: unless-stopped
volumes:
- ./html:/usr/share/nginx/html
db:
image: postgres:15-alpine
environment:
POSTGRES_USER: devops
POSTGRES_PASSWORD: secretpassword
POSTGRES_DB: appdb
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:
🚀 Étape 2 : Lancement de la stack
Démarrez l'ensemble des services en arrière-plan (mode détaché) :
- Docker Compose V2 (Recommandé)
- Docker Compose V1 (Ancienne version)
docker compose up -d
docker-compose up -d
Pour vérifier que tous les conteneurs tournent correctement, utilisez :
docker compose ps
Si vous rencontrez une erreur liée aux permissions des sockets Docker sous Linux, assurez-vous que votre utilisateur fait partie du groupe docker :
sudo usermod -aG docker $USER
🧪 Étape 3 : Validation et tests
Testez le bon fonctionnement du serveur web :
curl http://localhost:8080
Vous devriez recevoir la réponse HTTP 200 par défaut de Nginx.
📋 Résumé des commandes clés
| Action | Commande |
|---|---|
| Démarrer en tâche de fond | docker compose up -d |
| Consulter les logs en temps réel | docker compose logs -f |
| Stopper la stack | docker compose down |
| Stopper et supprimer les volumes | docker compose down -v |