# Docker Compose - Aide-mémoire ## Commandes Essentielles ### Démarrage et Arrêt ```bash # Démarrer les services docker compose up -d # Mode détaché (arrière-plan) docker compose up # Mode interactif (voir les logs) # Arrêter les services docker compose down # Arrête et supprime les conteneurs docker compose stop # Arrête sans supprimer ``` ### Logs et Surveillance ```bash # Voir les logs docker compose logs # Tous les logs docker compose logs -f # Suivre les logs en direct docker compose logs [service] # Logs d'un service spécifique # État des conteneurs docker compose ps # Liste et état des conteneurs ``` ### Construction et Reconstruction ```bash # Construire les images docker compose build # Tous les services docker compose build [service] # Un service spécifique # Reconstruction et démarrage docker compose up -d --build # Reconstruire puis démarrer ``` ## Structure docker-compose.yml ### Services ```yaml services: monservice: image: ... # Utiliser une image existante build: ... # Construire depuis un Dockerfile ports: # Exposer des ports volumes: # Monter des volumes depends_on: # Définir des dépendances networks: # Connecter aux réseaux ``` ### Réseaux ```yaml networks: monreseau: # Réseau simple monreseau_interne: internal: true # Réseau isolé ``` ### Volumes ```yaml volumes: monvolume: # Volume pour persistance ``` ## Commandes Utiles ### Inspection ```bash # Vérifier la configuration docker compose config # Valider le fichier compose # Voir les réseaux docker network ls # Lister les réseaux docker network inspect [réseau] # Détails d'un réseau # Voir les volumes docker volume ls # Lister les volumes ``` ### Debug ```bash # Accéder à un conteneur docker compose exec [service] sh # Ouvrir un shell # Voir les processus docker compose top # Processus en cours ``` ### Gestion des Services ```bash # Redémarrer des services docker compose restart # Tous les services docker compose restart [service] # Un service spécifique # Recréer des conteneurs docker compose up -d --force-recreate ``` ## Conseils - Utilisez toujours `-d` en production, jamais en développement - Pensez à vérifier les logs en cas de problème - `docker compose config` est votre ami pour valider la syntaxe - Les réseaux se créent automatiquement - Les volumes persistent après un `down` (sauf si `-v`)