MES TUTOS
VEILLE
Chargement de la veille...
DEVOPS

Docker Compose : L'Infrastructure as Code (IaC) facile

Lancer des conteneurs avec docker run c'est bien pour tester, mais en production, c'est ingérable. Imaginez devoir taper 15 lignes de commande pour lancer un site web et sa base de données... Docker Compose permet de décrire toute votre architecture dans un seul fichier YAML. Bienvenue dans le monde de l'Infrastructure as Code.

1. Le concept

Docker Compose est un outil qui permet de définir et lancer des applications multi-conteneurs. Au lieu de scripts Bash, on utilise un fichier docker-compose.yml qui contient la recette complète de votre infrastructure.

2. Installation

Si vous avez suivi mon tutoriel précédent pour installer Docker, bonne nouvelle : le plugin Compose est déjà inclus.

# Vérification de la version
docker compose version

Note : On utilise désormais la commande docker compose (V2) et non plus l'ancien binaire docker-compose (V1).


3. Cas pratique : Une Stack WordPress complète

Nous allons déployer en une seule commande :

A. Préparation

mkdir mon-wordpress
cd mon-wordpress
nano docker-compose.yml

B. Le fichier docker-compose.yml

Copiez ce contenu. C'est le cœur de l'orchestration.

services:
  # SERVICE 1 : La Base de données
  db:
    image: mariadb:10.6
    restart: always
    volumes:
      - db_data:/var/lib/mysql # Persistance des données
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: wordpress
      MYSQL_USER: user
      MYSQL_PASSWORD: userpassword
    networks:
      - wp-network

  # SERVICE 2 : L'application WordPress
  wordpress:
    image: wordpress:latest
    depends_on:
      - db # Attend que la DB soit prête
    ports:
      - "8080:80" # Accessible sur http://localhost:8080
    restart: always
    environment:
      WORDPRESS_DB_HOST: db # Nom du service ci-dessus
      WORDPRESS_DB_USER: user
      WORDPRESS_DB_PASSWORD: userpassword
      WORDPRESS_DB_NAME: wordpress
    networks:
      - wp-network

  # SERVICE 3 : Interface de gestion DB
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    depends_on:
      - db
    ports:
      - "8888:80" # Accessible sur http://localhost:8888
    environment:
      PMA_HOST: db
    networks:
      - wp-network

# Déclaration des volumes
volumes:
  db_data:

# Déclaration des réseaux
networks:
  wp-network:

4. Analyse technique (Pour comprendre)

Ce fichier contient plusieurs notions clés pour un SysAdmin :

5. Lancement de la Stack

C'est ici que la magie opère. Une seule commande suffit pour tout construire :

docker compose up -d

L'option -d (Detached) rend la main immédiatement.

Rendez-vous sur :

6. Commandes utiles au quotidien

Arrêter toute la stack (sans perdre les données) :

docker compose stop

Détruire la stack (arrête et supprime les conteneurs) :

docker compose down

Voir les logs de tous les services en même temps (super pratique pour le debug) :

docker compose logs -f

Conclusion

Avec Docker Compose, votre infrastructure devient portable. Vous pouvez envoyer ce fichier docker-compose.yml à un collègue, il tape docker compose up -d, et il a exactement le même environnement que vous. C'est la base du travail en équipe moderne.

← Retour à la bibliothèque