Les bases
Docker et docker-compose expliqués simplement
Mis à jour le 3 octobre 2026 · 8 min de lecture
Presque toutes les applications auto-hébergées s’installent avec Docker. Ce guide vous donne les bases pour comprendre ce que vous faites, sans jargon inutile.
L’idée : des boîtes isolées
Installer une application « à l’ancienne », c’est installer son langage, ses bibliothèques, sa base de données… directement sur le serveur. Avec plusieurs applications, elles finissent par se gêner : versions incompatibles, fichiers éparpillés, désinstallations incomplètes.
Docker range chaque application dans une boîte isolée, appelée conteneur, qui contient tout ce dont elle a besoin. Les boîtes ne se marchent pas dessus, et supprimer une application ne laisse aucune trace.
Les 5 mots à connaître
Image. Le « modèle » d’une application, publié par ses développeurs. Exemple : vaultwarden/server:latest. Le
mot après les deux-points (latest, 2, release) est la version (le tag).
Conteneur. Une image en cours d’exécution. On peut en lancer plusieurs à partir de la même image.
Volume. Un conteneur est jetable : quand on le recrée (par exemple pour une mise à jour), tout ce qu’il contient disparaît. Les données à garder sont donc stockées dans des dossiers du serveur partagés avec le conteneur :
volumes:
- ./data:/data # dossier_du_serveur:dossier_dans_le_conteneur
Ce sont ces dossiers qu’il faut sauvegarder.
Port. Pour joindre une application depuis l’extérieur, on relie un port du serveur à un port du conteneur :
ports:
- "8080:80" # port_du_serveur:port_du_conteneur
Réseau. Les conteneurs d’un même fichier peuvent se parler par leur nom (l’application joint sa base de données à
l’adresse db), sans être exposés sur Internet.
docker-compose : la recette
Plutôt que de taper de longues commandes, on décrit ses conteneurs dans un fichier docker-compose.yml. C’est la
« recette » de l’application :
services:
vaultwarden:
image: vaultwarden/server:latest
restart: unless-stopped
volumes:
- ./data:/data
ports:
- "127.0.0.1:8080:80"
Chaque bloc sous services: est un conteneur. Le générateur docker-compose en mode
débutant explique chaque ligne du fichier qu’il produit.
Attention aux espaces : le format YAML est sensible à l’indentation. Utilisez des espaces (jamais de tabulations) et gardez l’alignement exact.
Les commandes à connaître
À lancer dans le dossier qui contient le docker-compose.yml :
| Commande | Effet |
|---|---|
docker compose up -d |
Démarre (ou applique les changements) en arrière-plan |
docker compose ps |
Affiche l’état des conteneurs |
docker compose logs -f |
Affiche les journaux en direct (Ctrl + C pour quitter) |
docker compose pull |
Télécharge les nouvelles versions des images |
docker compose down |
Arrête et supprime les conteneurs (les données des volumes restent) |
docker compose restart |
Redémarre |
Et une commande globale utile :
docker ps # tous les conteneurs du serveur
Le fichier .env
Les mots de passe ne s’écrivent pas directement dans le docker-compose.yml. On les met dans un fichier .env, dans
le même dossier :
DB_PASSWORD=un-mot-de-passe-long-et-aleatoire
et le compose y fait référence avec ${DB_PASSWORD}. On peut ainsi partager le compose sans divulguer ses secrets.
Et ensuite ?
- Installer Docker sur Ubuntu ou Debian.
- Le reverse proxy expliqué simplement : pour mettre vos applications en HTTPS.