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.