Sobes.tech
Junior

Ce este Docker Compose și cum se folosește?

sobes.tech AI

Răspuns de la AI

Docker Compose este un instrument pentru definirea și rularea aplicațiilor Docker multi-contener. Permite descrierea serviciilor aplicației, dependențelor și configurației într-un singur fișier (de obicei docker-compose.yml). Apoi, cu o singură comandă, se pot porni toate serviciile definite.

Utilizarea Docker Compose:

  1. Definirea serviciilor: În fișierul docker-compose.yml, se descriu diferitele componente ale aplicației ca servicii (de exemplu, server web, bază de date, API backend). Pentru fiecare serviciu, se specifică imaginea Docker, porturile, volumele, variabilele de mediu și dependențele.

    # exemplu de fișier docker-compose.yml
    version: '3.8'
    services:
      webapp:
        image: my-webapp
        ports:
          - "80:80"
        volumes:
          - .:/app
      database:
        image: postgres:13
        environment:
          POSTGRES_USER: user
          POSTGRES_PASSWORD: password
    
  2. Pornirea aplicației: Comanda docker-compose up construiește, creează și pornește toate serviciile descrise în fișierul docker-compose.yml.

    # pornirea tuturor serviciilor în fundal
    docker-compose up -d
    
  3. Oprirea aplicației: Comanda docker-compose down oprește și șterge containerele, rețelele și volumele create de docker-compose up.

    # oprirea și ștergerea serviciilor
    docker-compose down
    

Principalele avantaje:

  • Simplificarea configurației: Întreaga configurație a aplicației multi-contener este concentrată într-un singur fișier.
  • Reproductibilitate: Este ușor să configurezi și să pornești aplicația într-un mediu identic pe diferite mașini.
  • Gestionarea ciclului de viață: Comenzi simple pentru a porni, opri și reporni toate serviciile.
  • Testare: Este convenabil să creezi rapid medii de test cu servicii dependente (baze de date, cozi de mesaje etc.).

În QA, Docker Compose este adesea folosit pentru a implementa rapid medii de test, a simula infrastructuri complexe și a asigura predictibilitatea mediului de testare.