🛢️Parcours Fioul GroupéDocker · Chapitre 06
Accueil › Docker › Chapitre 06
Chapitre 06 / 08

Docker Compose

Lancer trois conteneurs à la main devient vite pénible. Docker Compose décrit toute l'application dans un seul fichier YAML et la démarre d'une commande.

1 Notion

D'une commande par conteneur à un fichier

Compose remplace les longues commandes docker run par une description déclarative : on liste les services, leurs images, ports, volumes, variables — et Compose crée le réseau, les volumes et démarre tout dans le bon ordre.

2 Étape

Le fichier compose.yaml

Un premier exemple à deux services (base + API) :

services:
  mongo:
    image: mongo:7
    volumes: [ "fioul-data:/data/db" ]
  api:
    build: ./api
    ports: [ "8080:8080" ]
    environment:
      SPRING_DATA_MONGODB_URI: mongodb://mongo:27017/fioul

volumes:
  fioul-data:
Le nom du service = le nom réseau — ici l'API joint la base via mongo (le nom du service), pas localhost (rappel du chapitre 5).
3 Commande

Démarrer & arrêter

docker compose up -d      # build + démarre tout en arrière-plan
docker compose ps         # état des services
docker compose logs -f api
docker compose down       # arrête et supprime (garde les volumes)
4 Notion

Ordonner le démarrage

depends_on démarre la base avant l'API. Pour attendre qu'elle soit prête (et pas seulement démarrée), on combine avec un healthcheck — vu au chapitre 7.

  api:
    depends_on: [ mongo ]
🛢️ Sur le projet Fioul Groupé

Écris un premier compose.yaml à deux services (mongo + api) et lance-le avec docker compose up -d. Vérifie que l'API répond sur localhost:8080 et lit bien la base. Le chapitre 7 ajoute la 3e couche et les réglages de production.

À retenir
  • Compose décrit toute l'appli (services, volumes, réseau) en un fichier YAML.
  • docker compose up -d / down pour tout démarrer / arrêter.
  • Les services se joignent par leur nom ; depends_on ordonne le démarrage.
← Chapitre 05