Leçon 20 : Gestion du Cycle de Vie de Compose (Stop, Down, Restart)
Savoir comment arrêter et nettoyer votre pile gracieusement est essentiel.
1. Arrêt des Services
Utilisez docker compose stop pour arrêter les conteneurs gracieusement sans les supprimer. Ils peuvent être redémarrés plus tard très rapidement.
bash docker compose stop
Pour redémarrer les services arrêtés :
bash docker compose start
2. Suppression de la Pile (docker compose down)
La commande down arrête les conteneurs et supprime les conteneurs et les réseaux par défaut créés par compose up.
bash docker compose down
Nettoyage de Tout (Y compris les Volumes)
Il est crucial de noter que down ne supprime pas les volumes persistants par défaut, car cela effacerait vos données (par exemple, les données PostgreSQL).
Pour supprimer les conteneurs, les réseaux et aussi les volumes nommés (à utiliser avec prudence) :
bash docker compose down -v
3. Reconstruction des Images
Si vous modifiez le code de votre application ou le Dockerfile, vous devez reconstruire l'image avant que les conteneurs n'utilisent la nouvelle version.
Pour arrêter, reconstruire et redémarrer la pile :
bash docker compose up --build -d
4. Exécution de Commandes à l'intérieur d'un Service en Cours d'Exécution
Pour exécuter une commande interactive (comme un shell ou un script de migration) à l'intérieur d'un conteneur en cours d'exécution, utilisez docker compose exec :
bash
Ouvrir un shell à l'intérieur du conteneur web en cours d'exécution
docker compose exec web sh
Exécuter un script de migration de base de données
docker compose exec db psql -U user -d mydb
docker compose exec est équivalent à docker exec mais utilise le nom de service défini dans votre compose.yml.