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 ?

Prêt à vous lancer ?

Choisissez vos applications et récupérez une installation complète.

Créer mon serveur