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 upTa ukaz bo zagnal vsebnike za storitve, definirane v
docker-compose.ymldatoteki. -
Ustavite in odstranite vsebnike:
docker-compose downTa ukaz ustavi in odstrani vse vsebnike, povezane s projektom.
-
Seznam tekočih vsebnikov:
docker-compose psTa ukaz bo prikazal status vsebnikov v projektu.
-
Ogled servisnih dnevnikov:
docker-compose logsTa 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.

