Skip to main content

Déployer une application avec Docker Compose

Niveau : Debutant⏱️ Temps estimé : 20 min
📋 Prérequis nécessaires :
  • 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.

Pourquoi Docker Compose ?

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.

Terminal
mkdir mon-projet && cd mon-projet
touch docker-compose.yml

Ajoutez le contenu suivant dans votre docker-compose.yml :

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 up -d
Vérification de l'état

Pour vérifier que tous les conteneurs tournent correctement, utilisez :

docker compose ps
Attention aux permissions

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​

ActionCommande
Démarrer en tâche de fonddocker compose up -d
Consulter les logs en temps réeldocker compose logs -f
Stopper la stackdocker compose down
Stopper et supprimer les volumesdocker compose down -v