docker compose down

Zatrzymuje i usuwa kontenery, sieci i (opcj.) wolumeny stacku.

docker compose down to komenda, która sprząta po tym, co odpaliłeś przez docker compose up. Zatrzymuje wszystkie kontenery zdefiniowane w pliku compose.yaml, a następnie je usuwa razem z sieciami, które Compose stworzył na potrzeby stacku. Domyślnie nie rusza Twoich danych — nazwane wolumeny i obrazy zostają na miejscu, więc kolejne up wstanie z tym samym stanem bazy czy plików. To czysty, kontrolowany sposób na zwinięcie środowiska, w przeciwieństwie do ręcznego ubijania kontenerów po kolei.

Składnia i najważniejsze opcje

Podstawowa składnia wygląda tak: docker compose down [OPCJE] — uruchamiasz ją w katalogu z plikiem Compose.

  • -v, --volumes — usuwa nazwane wolumeny zadeklarowane w sekcji volumes oraz wolumeny anonimowe. Czyli kasuje też dane (uwaga na bazy!).
  • --rmi TYPE — usuwa obrazy: all (wszystkie używane przez usługi) albo local (tylko te bez własnego taga w polu image).
  • --remove-orphans — usuwa kontenery usług, których już nie ma w pliku Compose (zostały po starszej wersji konfiguracji).
  • -t, --timeout SEKUNDY — czas na łagodne zatrzymanie (SIGTERM) zanim Docker wyśle SIGKILL. Domyślnie 10 sekund.
  • --dry-run — pokazuje, co komenda by zrobiła, ale niczego nie wykonuje. Dobre do nerwowego sprawdzenia przed kasowaniem.

Przykłady użycia

  • docker compose down — zatrzymuje i usuwa kontenery oraz sieci stacku, zostawiając wolumeny i obrazy nietknięte. Najczęstszy wariant.
  • docker compose down -v — to samo plus usunięcie nazwanych wolumenów. Używasz, gdy chcesz wyczyścić dane, np. zresetować bazę do zera.
  • docker compose down --rmi all — dokłada usunięcie wszystkich obrazów używanych przez usługi. Przyda się przy odzyskiwaniu miejsca na dysku.
  • docker compose down --remove-orphans — sprząta także osierocone kontenery po usługach, które usunąłeś z pliku.
  • docker compose down -t 30 — daje usługom 30 sekund na czyste zamknięcie, zamiast domyślnych 10. Sensowne dla baz danych, które nie lubią nagłego SIGKILL.

Częste błędy i pułapki

Największa mina to -v odpalone z rozpędu na produkcji albo na lokalnej bazie, której nie zbackupowałeś — kasuje wolumeny bez pytania. Compose nie zapyta „czy na pewno”, po prostu zrobi to, co kazałeś. Druga sprawa: down działa na cały stack z bieżącego pliku Compose, a nie na pojedynczą usługę. Jeśli chcesz tylko zatrzymać kontenery i zostawić je do ponownego startu, użyj docker compose stop — nie usuwa kontenerów ani sieci. Pamiętaj też, że down czyta plik z bieżącego katalogu (lub wskazany przez -f); odpalony nie tam, gdzie trzeba, albo nic nie znajdzie, albo zwinie inny stack niż myślisz. I drobiazg: stary docker-compose (z myślnikiem, v1) bywa jeszcze na serwerach — flagi są te same, ale to osobny, wygaszony już projekt.

Powiązane komendy: docker compose up, docker compose stop, docker compose start, docker compose rm, docker compose ps, docker system prune.