Générateur Docker Compose
⚡ Presets rapides
Ajoutez un service préconfiguré en 1 clic :
🔧 Services
🌐 Réseaux (Networks)
💾 Volumes nommés
⚙️ Options globales
Créez votre fichier docker-compose.yml complet en ligne : ajoutez des services (nginx, postgres, mysql, redis, node…), configurez les ports, volumes, variables d'environnement, depends_on, healthcheck et réseaux. Prévisualisation YAML en temps réel, export en un clic.
Qu'est-ce que Docker Compose ?
Docker Compose est un outil qui permet de définir et d'orchestrer plusieurs conteneurs Docker
à partir d'un seul fichier YAML (docker-compose.yml). Au lieu de lancer chaque conteneur
manuellement avec de longues commandes docker run, vous décrivez l'architecture complète
de votre application en une seule fois.
- ✅ Multi-conteneurs : web, API, base de données, cache — tout dans un seul fichier
- ✅ Réseaux isolés : les services communiquent par nom sans exposer les ports inutilement
- ✅ Volumes persistants : les données survivent aux redémarrages des conteneurs
- ✅ Reproductibilité : même comportement en dev, CI/CD et prod
- ✅ Versioning : le fichier vit avec votre code dans Git
docker compose (sans tiret)
est le standard. La version de format dans le fichier YAML est désormais optionnelle — il est
recommandé de l'omettre pour les nouveaux projets.
Les commandes essentielles se lancent depuis le répertoire contenant le docker-compose.yml :
# Démarrer tous les services en arrière-plan
docker compose up -d
# Arrêter et supprimer les conteneurs (mais pas les volumes)
docker compose down
# Voir les logs en temps réel
docker compose logs -f
# Statut des services
docker compose ps
Anatomie d'un service
Chaque entrée sous services: correspond à un conteneur. Voici les clés les plus importantes
que vous pouvez configurer pour chaque service :
| Clé | Description | Exemple |
|---|---|---|
image |
Image Docker à utiliser (Docker Hub ou registre privé) | nginx:alpine |
build |
Chemin vers un Dockerfile à construire localement | ./api |
container_name |
Nom explicite du conteneur (évite les noms auto-générés) | mon-api |
restart |
Politique de redémarrage automatique du conteneur | unless-stopped |
ports |
Publication de ports (hôte:conteneur) |
"8080:80" |
volumes |
Montage de volumes ou bind mounts | ./data:/app/data |
environment |
Variables d'environnement injectées dans le conteneur | NODE_ENV=production |
depends_on |
Ordre de démarrage (attend que le service dépendant soit prêt) | db: {condition: service_healthy} |
networks |
Réseaux auxquels le service est connecté | - app-network |
healthcheck |
Commande de vérification de santé du conteneur | test: ["CMD", "pg_isready"] |
image pour les services officiels (nginx, postgres,
redis…) et build pour votre propre code source. Les deux peuvent coexister : build
construit l'image et image lui donne un nom pour le registre.
Réseaux et volumes
Réseaux Docker
Par défaut, Docker Compose crée un réseau bridge partagé par tous vos services.
Déclarer des réseaux explicites permet d'isoler les groupes de services et de contrôler finement
qui peut communiquer avec qui.
| Driver | Usage | Cas d'usage |
|---|---|---|
bridge |
Réseau isolé sur la machine hôte | Développement, conteneurs sur un seul hôte |
host |
Le conteneur partage le réseau de l'hôte | Performance maximale, pas d'isolation réseau |
overlay |
Réseau distribué entre plusieurs hôtes | Docker Swarm, clusters multi-nœuds |
Volumes : nommés vs bind mounts
volumes:
# Volume nommé : géré par Docker, persistant, portable
- postgres_data:/var/lib/postgresql/data
# Bind mount : dossier local monté dans le conteneur (développement)
- ./src:/app/src:ro
# Tmpfs : monté en mémoire uniquement (données temporaires)
- type: tmpfs
target: /tmp
Commandes essentielles
Toutes ces commandes s'exécutent depuis le répertoire contenant votre docker-compose.yml.
Avec Compose v2, remplacez docker-compose par docker compose (sans tiret).
| Commande | Description |
|---|---|
docker compose up -d |
Démarre tous les services en arrière-plan (détaché) |
docker compose up --build |
Force la reconstruction des images avant de démarrer |
docker compose down |
Arrête et supprime les conteneurs et réseaux |
docker compose down -v |
Idem + supprime aussi les volumes nommés |
docker compose logs -f [service] |
Affiche les logs en temps réel (optionnellement d'un seul service) |
docker compose ps |
Liste les conteneurs et leur état |
docker compose exec <service> sh |
Ouvre un shell interactif dans un conteneur en cours d'exécution |
docker compose build [service] |
Reconstruit l'image d'un service sans le démarrer |
docker compose pull |
Télécharge les dernières versions des images déclarées |
docker compose restart [service] |
Redémarre un ou tous les services |
docker compose config |
Valide et affiche la configuration Compose résolue |
docker compose config pour détecter les erreurs de
syntaxe YAML avant de démarrer vos services. C'est l'équivalent d'un lint pour votre fichier Compose.