Semaine 3 · Diaporama de notions

La partition

Acte 2 : décrire toute l'application dans un seul fichier, prête à se lever d'un seul geste. Docker Compose.

420-5A4-MT · Serveurs évolutifs · Compose
Où en est l'histoire

Les commandes s'allongent...

Deux conteneurs à démarrer dans le bon ordre, un réseau, des volumes, des ports, des mots de passe : la semaine dernière, vos commandes docker run faisaient trois lignes chacune. Une erreur de frappe et rien ne fonctionne. L'entreprise décide d'écrire la recette complète une fois pour toutes : une partition, que n'importe quelle machine saura rejouer.

Notion 1

Docker Compose

Docker Compose est l'outil qui définit et exécute des applications multi-conteneurs. On décrit les services de l'application dans un fichier YAML, et une seule commande construit et démarre le tout.

Déclaratif, pas impératif

On ne dit plus comment faire, étape par étape : on décrit l'état voulu, et Compose s'arrange pour y arriver.

L'infrastructure en code

La recette est un fichier texte : on la versionne, on la partage, on la relit. L'installation redevient une connaissance écrite.

Notion 2

Anatomie d'un docker-compose.yml

services:
web: # un service = un conteneur
image: wordpress # la recette de base
ports:
- 8082:80 # redirection hote:conteneur
volumes:
- ./wordpress:/var/www/html
environment:
WORDPRESS_DB_HOST: basededonnees
depends_on:
- basededonnees # ordre de demarrage
basededonnees:
image: mysql:8.0

En YAML, l'indentation est la grammaire : deux espaces, jamais de tabulations. La moitié des bogues de la semaine seront des problèmes d'indentation.

Notion 3

Les clés secrètes

Les services se configurent par variables d'environnement : noms de bases, utilisateurs, mots de passe. C'est pratique, mais un mot de passe écrit en clair dans un fichier partagé est un mot de passe donné.

Notion 4

Lever et coucher l'application

docker compose up -d
# tout demarre : reseau, volumes, conteneurs, dans le bon ordre
docker compose ps
docker compose logs
docker compose stop
# arrete les conteneurs, sans rien supprimer
docker compose down
# supprime conteneurs et reseau, GARDE les volumes
docker compose down --volumes
# supprime AUSSI les donnees : la remise a zero complete

La nuance stop, down, down --volumes est une question d'examen classique... et surtout la différence entre une pause, un rangement et un incendie volontaire.

À retenir

Avant de passer au laboratoire

Au laboratoire : le WordPress de la petite entreprise devient une partition en trois services (web, base de données, phpMyAdmin), et vous prouverez que les données survivent au grand ménage.

Version de départ · ce diaporama va s'enrichir