Skip to content

Cum să rulezi aplicații multi-container cu docker compose

DodaTech Updated 2025-01-15 2 min read

In this tutorial, you'll learn about Cum să rulezi aplicații multi. We cover key concepts, practical examples, and best practices.

Vei învăța cum să rulezi și să gestionezi aplicații multi-container cu <a href="/devops/docker-compose/">docker compose</a>, orchestrand mai multe servicii dintr-un singur fișier YAML.

Problema

Rulezi mai multe containere manual cu docker run și trebuie să le conectezi în rețea, să gestionezi volumele și dependențele individual. Acest proces devine greoi și predispus la erori pe măsură ce aplicația crește.

Modul Greșit

docker run -d --name db postgres
docker run -d --name api --link db myapp-api
docker run -d --name frontend -p 3000:3000 myapp-frontend

Fiecare container pornește separat, rețeaua este implicită și nu există o configurare centralizată.

Modul Corect

# docker-compose.yml
version: "3.9"
services:
  db:
    image: postgres:15
    volumes:
      - pgdata:/var/lib/postgresql/data
  api:
    build: ./api
    ports:
      - "4000:4000"
    depends_on:
      - db
  frontend:
    build: ./frontend
    ports:
      - "3000:3000"
volumes:
  pgdata:
docker compose up -d

Output:

[+] Running 4/4
 ✔ Network default          Created
 ✔ Volume pgdata            Created
 ✔ Container db             Started
 ✔ Container api            Started
 ✔ Container frontend       Started

Pași Detaliați

1. Pornește serviciile cu up

Construiește imaginile, creează rețelele și pornește containerele.

docker compose up -d

2. Oprește serviciile cu down

Oprește și elimină containerele, rețelele și volumele specificate.

docker compose down

3. Reconstruiește imaginile cu build

Reconstruiește imaginile înainte de a porni serviciile.

docker compose up --build -d

Sfaturi de Prevenire

  • Plasează serviciile care se schimbă rar (baze de date, cache) cu image: direct, nu cu build:
  • Definește rețele custom pentru izolarea serviciilor
  • Folosește depends_on pentru a controla ordinea de pornire
  • Verifică sintaxa YAML cu <a href="/devops/docker-compose/">docker compose</a> config

Greșeli Comune

  1. Versiune de fișier incorectă -- sintaxa diferă între versiunile Docker Compose
  2. Dependențe ciclice -- serviciile se așteaptă reciproc și nu pornesc
  3. Volume nepersistente -- datele se pierd dacă volumul nu este declarat la nivel rădăcină
  4. Porturi conflictuale -- două servicii încearcă să expună același port pe host
  5. Rețea nedeclarată -- serviciile nu pot comunica între ele

Întrebări Frecvente

### Care este diferența între `up` și `start`?

up creează și pornește containerele, în timp ce start repornește containerele existente fără a le recrea.

Cum văd logurile tuturor serviciilor?

Folosește <a href="/devops/docker-compose/">docker compose</a> logs -f pentru a urmări logurile în timp real de la toate serviciile.

Pot scala un serviciu cu docker compose?

Da, cu <a href="/devops/docker-compose/">docker compose</a> up -d --scale api=3, dar serviciul trebuie să fie stateless.

Construit de dezvoltatorii Doda Browser, DodaZIP și Durga Antivirus Pro. Instrumentele DodaTech se integrează perfect cu Docker pentru productivitate și securitate sporite.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro