Docker Compose: Osnove i uporaba

Docker Compose je moćan i popularan alat koji se koristi za upravljanje i implementaciju aplikacija temeljenih na Docker. Omogućuje vam da definirate, konfigurirate i pokrenete više Docker spremnika kao jedan projekt, pojednostavljujući implementaciju aplikacije i osiguravajući dosljednost između razvojnih i proizvodnih okruženja.

U nastavku su neki koncepti i primjeri Docker Compose:

Definirajte projekt pomoću datoteke docker-compose.yml

U docker-compose.yml datoteci možete definirati usluge koje su potrebne za vašu aplikaciju. Na primjer, za implementaciju PHP web aplikacije s MySQL bazom podataka, možete definirati dvije usluge na sljedeći način:

version: "3"  
services:  
  web:  
    image: php:7.4-apache  
    ports:  
   - "80:80"  
    volumes:  
   - ./app:/var/www/html  
  
  db:  
    image: mysql:5.7  
    environment:  
      MYSQL_ROOT_PASSWORD: password  
      MYSQL_DATABASE: my_database  

U gornjem isječku koda definiramo dvije usluge: web i db. Usluga web će koristiti PHP 7.4 image s Apache, slušati na priključku 80 i montirati ./app direktorij s glavnog računala u /var/www/html direktorij u container. Usluga db će koristiti MySQL 5.7 image i postaviti neke varijable okruženja potrebne za bazu podataka.

 

Korištenje Docker Compose naredbe

Nakon što definirate projekt u datoteci docker-compose.yml, možete koristiti Docker Compose naredbe za upravljanje uslugama.

  • Započnite projekt: docker-compose up

    Ova naredba će pokrenuti spremnike za usluge definirane u datoteci docker-compose.yml.

  • Zaustavite i uklonite spremnike: docker-compose down

    Ova naredba zaustavlja i uklanja sve spremnike koji se odnose na projekt.

  • Popis aktivnih spremnika: docker-compose ps

    Ova naredba će prikazati status spremnika u projektu.

  • Pogledajte dnevnike usluge: docker-compose logs

    Ova naredba prikazuje zapisnike usluga u projektu.

 

Varijable okruženja i prilagodba

Docker Compose omogućuje vam korištenje varijabli okruženja za prilagodbu konfiguracija za različita okruženja, kao što su razvoj i proizvodnja. Možete koristiti varijable okruženja u docker-compose.yml datoteci i definirati njihove vrijednosti u odgovarajućim .env datotekama.

Na primjer, ako želite definirati varijablu okruženja za priključak usluge web, možete dodati redak u .env datoteku ovako:

WEB_PORT=8080

Zatim, u docker-compose.yml datoteci, možete koristiti ovu varijablu okoline ovako:

version: "3"  
services:  
  web:  
    image: php:7.4-apache  
    ports:  
   - "${WEB_PORT}:80"  
    volumes:  
   - ./app:/var/www/html  

Prilikom pokretanja docker-compose up naredbe, web usluga će slušati na portu 8080 umjesto na portu 80.

 

Integracija sa Docker Swamom

Ako želite implementirati svoju aplikaciju u distribuiranom okruženju s više čvorova, Docker Compose možete se integrirati s Docker Swarm. To vam omogućuje upravljanje uslugama na više čvorova u Docker klasteru.

Da biste koristili ovu integraciju, samo trebate dodati opcije --orchestrate ili --with-registry-auth prilikom izvođenja naredbi docker stack deploy ili docker-compose up u Swarm okruženju.

 

Docker Compose je koristan alat za jednostavan i učinkovit razvoj aplikacija, testiranje i implementaciju. Minimizira razlike između razvojnih i proizvodnih okruženja, osigurava dosljednost u procesu razvoja softvera i povećava produktivnost razvojnih timova.