Docker Compose: Osnove in uporaba

Docker Compose je zmogljivo in priljubljeno orodje za upravljanje in uvajanje aplikacij, ki temeljijo na Docker. Omogoča vam, da definirate, konfigurirate in zaženete več Docker vsebnikov kot en sam projekt, kar poenostavlja uvajanje aplikacij in zagotavlja skladnost med razvojnim in produkcijskim okoljem.

Spodaj je nekaj konceptov in primerov Docker Compose:

Definirajte projekt z uporabo datoteke docker-compose.yml

V docker-compose.yml datoteki lahko določite storitve, ki jih potrebuje vaša aplikacija. Če želite na primer razmestiti spletno aplikacijo PHP z bazo podatkov MySQL, lahko definirate dve storitvi, kot sledi:

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  

V zgornjem delčku kode definiramo dve storitvi: web in db. Storitev web bo uporabljala PHP 7.4 image z Apache, poslušala na vratih 80 in priklopila ./app imenik iz gostitelja v /var/www/html imenik v container. Storitev db bo uporabljala MySQL 5.7 image in nastavila nekatere okoljske spremenljivke, potrebne za bazo podatkov.

 

Uporaba Docker Compose ukaza

Ko definirate projekt v datoteki docker-compose.yml, lahko uporabite Docker Compose ukaze za upravljanje storitev.

  • Začni projekt: docker-compose up

    Ta ukaz bo zagnal vsebnike za storitve, definirane v docker-compose.yml datoteki.

  • Ustavite in odstranite vsebnike: docker-compose down

    Ta ukaz ustavi in ​​odstrani vse vsebnike, povezane s projektom.

  • Seznam tekočih vsebnikov: docker-compose ps

    Ta ukaz bo prikazal status vsebnikov v projektu.

  • Ogled servisnih dnevnikov: docker-compose logs

    Ta ukaz prikaže dnevnike storitev v projektu.

 

Spremenljivke okolja in prilagajanje

Docker Compose omogoča uporabo spremenljivk okolja za prilagajanje konfiguracij za različna okolja, kot sta razvoj in proizvodnja. V datoteki lahko uporabite spremenljivke okolja docker-compose.yml in določite njihove vrednosti v ustreznih .env datotekah.

Na primer, če želite definirati spremenljivko okolja za vrata storitve web, lahko v datoteko dodate vrstico, .env kot je ta:

WEB_PORT=8080

Nato docker-compose.yml lahko v datoteki uporabite to spremenljivko okolja takole:

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

Pri zagonu docker-compose up ukaza web bo storitev poslušala na vratih 8080 namesto na vratih 80.

 

Integracija s Docker Swam

Če želite svojo aplikacijo namestiti v porazdeljeno okolje z več vozlišči, Docker Compose se lahko integrirate z Docker Swarm. To vam omogoča upravljanje storitev v več vozliščih v Docker gruči.

Če želite uporabiti to integracijo, morate le dodati možnosti --orchestrate ali --with-registry-auth pri izvajanju ukazov docker stack deploy ali docker-compose up v Swarm okolju.

 

Docker Compose je uporabno orodje za enostaven in učinkovit razvoj aplikacij, testiranje in uvajanje. Minimizira razlike med razvojnimi in proizvodnimi okolji, zagotavlja doslednost v procesu razvoja programske opreme in povečuje produktivnost razvojnih skupin.