Générateur Docker Compose — Multi-services en ligne

🏷️ Outils en ligne 100% Gratuit
Générateur Docker Compose Docker Compose Yml Docker Compose En Ligne Orchestration Conteneurs Docker Multi-Services Docker Devops Outil En Ligne De Génération Docker Compose
🐙

Générateur Docker Compose

⚡ Presets rapides

Ajoutez un service préconfiguré en 1 clic :


🔧 Services


🌐 Réseaux (Networks)


💾 Volumes nommés


⚙️ Options globales

docker-compose.yml généré

                                        
                                    

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
Compose v2 vs v1 : Depuis Docker Desktop 3.4, 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 vs build : utilisez 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
Bonnes pratiques volumes : utilisez des volumes nommés en production pour les données persistantes (bases de données, fichiers upload). Réservez les bind mounts au développement pour le hot-reload du code source.

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
Astuce : Utilisez 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.