Avis Google vérifiés Tutoriels techniques

Comment orchestrer plusieurs services avec Docker Compose

Apprenez à décrire une stack multi-services, gérer variables, dépendances et persistance avec docker compose et compose.yaml.

Suggestions populaires
Ctrl K ouvrir · esc fermer
Voir toutes les formations →
Qualiopi · depuis 2024
511+ villes · 25 pays
OPCO et FNE
Par ··8 min de lecture
Série · DevOps ← Retour au blogComment orchestrer plusieurs services avec Docker Compose

Ce que vous allez faire

À l’issue de ce tutoriel vous disposerez d’un fichier compose.yaml qui démarre une stack web complète avec base de données, reverse proxy et persistance des données. L’ensemble se lance en une seule commande et redémarre automatiquement après un reboot du serveur.

Prérequis

  • Docker Engine 24+ et Docker Compose v2 installés
  • Accès root ou appartenance au groupe docker
  • Terminal ouvert et connexion SSH active
  • 20 minutes estimées

Étape 1 — Créer le fichier compose.yaml

Créez un répertoire dédié et initialisez le fichier de définition. Ce fichier décrit l’ensemble des services et leurs relations, ce qui permet à Docker Compose d’orchestrer plusieurs services en un seul coup.

bash
mkdir -p ~/stack && cd ~/stack && touch compose.yaml

Étape 2 — Définir les services et variables d'environnement

Ajoutez trois services : base de données, application et reverse proxy. Les variables d’environnement sont externalisées dans un fichier .env pour faciliter les changements sans modifier le compose.yaml.

yaml
services:
  db:
    image: postgres:16
    env_file: .env
    volumes:
      - db_data:/var/lib/postgresql/data
  app:
    image: node:20-alpine
    env_file: .env
    command: node server.js
    depends_on:
      db:
        condition: service_healthy
  proxy:
    image: nginx:alpine
    ports:
      - "80:80"
    depends_on:
      - app
volumes:
  db_data:

Étape 3 — Configurer les dépendances avec depends_on

La clé depends_on garantit l’ordre de démarrage. Ici l’application n’attend que la base de données soit prête grâce à la condition healthcheck.

yaml
depends_on:
  db:
    condition: service_healthy

Étape 4 — Ajouter des healthchecks

Un healthcheck permet à Docker de savoir quand un conteneur est réellement opérationnel avant de démarrer les services qui en dépendent.

yaml
healthcheck:
  test: ["CMD-SHELL", "pg_isready -U postgres"]
  interval: 5s
  timeout: 5s
  retries: 5

Étape 5 — Gérer la persistance des données

Le volume nommé db_data assure que les données survivent à la suppression du conteneur. Sans volume, la base serait réinitialisée à chaque redémarrage.

bash
docker compose up -d

Vérifier que tout fonctionne

bash
docker compose ps
 docker compose logs --tail=20

Erreurs fréquentes

Le service app reste en starting

Le healthcheck de la base échoue. Vérifiez les credentials dans .env et augmentez le nombre de retries.

Port 80 déjà utilisé

Changez le port publié dans la section ports du service proxy ou arrêtez le serveur web local.

Les données disparaissent après docker compose down

Vous avez utilisé docker compose down -v. Supprimez uniquement le flag -v pour conserver les volumes nommés.

Aller plus loin

Intégrez ce compose.yaml dans un pipeline CI/CD, ajoutez des profils pour les environnements de test et production, puis passez à l’orchestration multi-nœuds avec Docker Swarm ou Kubernetes.

Se former avec Learni

Formation Docker Compose : déploiement simplifié d'applications multi-conteneurs

Développeurs, administrateurs systèmes, DevOps souhaitant automatiser et simplifier le déploiement d'environnements applicatifs complexes grâce à Docker Compose. Niveau Intermédiaire. Présentiel. 3 journées. Prérequis : connaissance de base de Docker. Lien formation

Formation Docker Compose - Orchestrer stacks multi-conteneurs avancés

Ingénieurs DevOps, architectes cloud, développeurs seniors en conteneurs. Niveau Expert. Présentiel. 3 journées. Prérequis : maîtrise avancée de Docker CLI et Dockerfile. Lien formation

Formation Docker Compose - Orchestrer apps multi-conteneurs efficacement

Ingénieurs DevOps, développeurs fullstack, architectes cloud. Niveau Avancée. Présentiel. 3 journées. Prérequis : maîtrise de Docker et notions avancées de YAML. Lien formation

Devis sous 24 h

FAQ

Comment vérifier que la base de données est prête avant l’application ?

Utilisez depends_on avec condition: service_healthy et définissez un healthcheck dans le service db du compose.yaml.

Où placer les variables d’environnement pour docker compose ?

Créez un fichier .env à la racine du projet et référencez-le avec env_file dans chaque service du compose.yaml.

Les volumes nommés survivent-ils à docker compose down ?

Oui, tant que vous n’ajoutez pas l’option -v. Les données restent dans le volume db_data.

Peut-on utiliser docker compose sur un serveur Windows ?

Oui, via WSL2 ou Docker Desktop. Le fichier compose.yaml reste identique.

Cet article vous a-t-il été utile ?

Notez-le de 1 à 5 étoiles.

Commentaires

Une question sur cet article, un retour d'expérience ? Lancez la discussion.

Laisser un commentaire

Votre nom et votre texte sont affichés sous l'article. Un commentaire qui contient un lien ou un terme de notre liste de modération est d'abord relu par l'équipe ; les liens ne sont jamais cliquables.

Aller plus loin

Se former sur ce sujet avec Learni

Ce tutoriel couvre l'essentiel. Ces trois formations intra-entreprise vont plus loin : cas réels, environnement de votre SI, formateur praticien.

Formation Docker Compose : déploiement simplifié d'applications multi-conteneurs

3 journées · présentiel · Intermédiaire

3 300 € HT

Voir la formation

Formation Docker Compose - Orchestrer stacks multi-conteneurs avancés

3 journées · présentiel · Expert

4 500 € HT

Voir la formation

Formation Docker Compose - Orchestrer apps multi-conteneurs efficacement

3 journées · présentiel · Avancée

4 500 € HT

Voir la formation

Une équipe à former sur ce sujet ? Devis sous 24 h

Votre formation professionnelle partout

Construisons
votre prochain
parcours.

30 minutes avec un conseiller formation. Sans engagement. Sans argumentaire commercial maquillé en démo.

Réponse sous 24 h · Qualiopi · OPCO
WhatsApp