docker compose up în Docker

Docker Compose Compose v2 (Docker 20.10+)

Construiește imaginile, creează rețeaua și volumele și pornește toate serviciile din compose.yaml.

Sintaxă comandă
docker compose [-f fișier] up [opțiuni] [serviciu...]

Ce face docker compose up

Comanda docker compose up este punctul central al lucrului cu Docker Compose: citește fișierul compose.yaml (sau docker-compose.yml) din directorul curent, creează automat o rețea comună și volumele declarate, construiește sau descarcă imaginile necesare și pornește containerele în ordinea dependențelor (depends_on).

Dacă rulezi din nou docker compose up -d după ce ai modificat compose.yaml, Compose este inteligent: recreează doar serviciile a căror configurație s-a schimbat, lăsând restul containerelor (de exemplu baza de date) să ruleze neîntrerupt.

Atenție: în Compose v2 comanda se scrie cu spațiu — docker compose (subcomandă a CLI-ului Docker), nu docker-compose cu cratimă (vechiul utilitar Python v1, retras din suport în 2023).

Opțiuni și argumente

Opțiune / Parametru Descriere
-d, --detach Pornește serviciile în fundal și eliberează terminalul (fără -d, afișează jurnalele împletite și oprește serviciile la Ctrl+C).
--build Forțează reconstruirea imaginilor pentru serviciile care au secțiunea build: înainte de pornire.
--force-recreate Recreează containerele chiar dacă nici imaginea, nici configurația nu s-au schimbat.
--pull always Verifică și descarcă ultimele versiuni ale imaginilor din registry înainte de pornire.
--wait Implică -d și așteaptă până când toate serviciile devin healthy conform healthcheck-ului.
--remove-orphans Șterge containerele pentru servicii care au fost eliminate între timp din compose.yaml.

Exemple

Exemplul 1: Pornirea întregii stive în fundal, cu reconstruirea imaginilor locale

Cea mai frecventă comandă după ce ai modificat codul sau Dockerfile-ul.

docker compose up -d --build

Ieșire în terminal

[+] Building 1.8s (10/10) FINISHED
 => [api internal] load build definition from Dockerfile                   0.0s
 => [api] exporting to image                                               0.1s
[+] Running 4/4
 ✔ Network proiect_default   Created                                       0.1s
 ✔ Volume "proiect_pgdata"   Created                                       0.0s
 ✔ Container proiect-db-1    Started                                       0.4s
 ✔ Container proiect-api-1   Started                                       0.7s

Exemplul 2: Pornirea unui singur serviciu (și a dependențelor lui)

Dacă vrei să lucrezi doar cu baza de date în timp ce rulezi aplicația nativ pe gazdă.

docker compose up -d db

Ieșire în terminal

[+] Running 1/1
 ✔ Container proiect-db-1  Running                                         0.0s

Greșeli frecvente

  • Modificarea codului sau a Dockerfile-ului și rularea simplă docker compose up -d fără --build: Compose refolosește imaginea veche deja construită și schimbările nu apar.
  • Folosirea vechii comenzi docker-compose (cu cratimă), care pe sistemele noi fie lipsește, fie nu recunoaște sintaxa modernă din compose.yaml.

Comenzi înrudite

  • docker compose down: Oprește și șterge containerele și rețeaua create de docker compose up.
  • compose.yaml: Fișierul declarativ în care descrii serviciile, rețelele și volumele unei aplicații multi-container.
  • docker compose logs / ps / exec: Inspectează starea serviciilor, urmărește jurnalele și execută comenzi folosind numele serviciului din compose.yaml.
  • docker build: Construiește o imagine pe baza unui Dockerfile și a unui context de build.