docker compose down în Docker

Docker Compose Compose v2 (Docker 20.10+)

Oprește și șterge containerele și rețeaua create de docker compose up.

Sintaxă comandă
docker compose down [opțiuni]

Ce face docker compose down

Comanda docker compose down face opusul lui docker compose up: oprește grațios toate containerele proiectului, le șterge și elimină rețeaua virtuală creată pentru proiect.

Dacă vrei doar să oprești temporar containerele fără să le ștergi, folosește docker compose stop (și apoi docker compose start). În practică însă, docker compose down este preferată deoarece nu șterge volumele cu nume în mod implicit — deci datele din baza de date rămân intacte la următorul docker compose up.

Doar dacă adaugi explicit opțiunea -v (--volumes), Compose va șterge și volumele declarate în compose.yaml — util când vrei să resetezi baza de date de dezvoltare de la zero.

Opțiuni și argumente

Opțiune / Parametru Descriere
-v, --volumes Șterge și volumele cu nume declarate în secțiunea volumes: a fișierului compose.yaml, precum și volumele anonime.
--rmi all|local Șterge și imaginile folosite de servicii (local șterge doar imaginile fără tag custom, construite local).
--remove-orphans Șterge și containerele rămase de la servicii care nu mai există în compose.yaml.
-t, --timeout N Secunde de așteptare la oprirea containerelor înainte de SIGKILL (implicit 10).

Exemple

Exemplul 1: Oprirea și curățarea containerelor și a rețelei (păstrând volumele)

Datele din volumul proiect_pgdata nu sunt atinse.

docker compose down

Ieșire în terminal

[+] Running 3/3
 ✔ Container proiect-api-1  Removed                                        0.3s
 ✔ Container proiect-db-1   Removed                                        0.4s
 ✔ Network proiect_default  Removed                                        0.1s

Exemplul 2: Resetare completă a mediului local (inclusiv baza de date)

Opțiunea -v șterge și volumul bazei de date, așa că la următorul up scripturile de inițializare vor rula din nou.

docker compose down -v --remove-orphans

Ieșire în terminal

[+] Running 4/4
 ✔ Container proiect-api-1  Removed                                        0.2s
 ✔ Container proiect-db-1   Removed                                        0.3s
 ✔ Volume proiect_pgdata    Removed                                        0.0s
 ✔ Network proiect_default  Removed                                        0.1s

Greșeli frecvente

  • Rularea din reflex a comenzii docker compose down -v pe un server unde baza de date stă într-un volum Compose: șterge toată baza de date.
  • Așteptarea ca scripturile din /docker-entrypoint-initdb.d/ (PostgreSQL/MySQL) să ruleze din nou după un simplu docker compose down fără -v: acele scripturi rulează doar când volumul de date este complet gol.

Comenzi înrudite

  • docker compose up: Construiește imaginile, creează rețeaua și volumele și pornește toate serviciile din compose.yaml.
  • compose.yaml: Fișierul declarativ în care descrii serviciile, rețelele și volumele unei aplicații multi-container.
  • docker volume: Creează, listează, inspectează și șterge volume gestionate de Docker pentru date persistente.
  • docker rm: Șterge unul sau mai multe containere (implicit doar pe cele oprite).