Docker Compose hija għodda qawwija u popolari użata għall-ġestjoni u l-iskjerament ta' applikazzjonijiet ibbażati fuq Docker. Jippermettilek tiddefinixxi, tikkonfigura, u tħaddem Docker kontenituri multipli bħala proġett wieħed, li tissimplifika l-iskjerament tal-applikazzjoni u tiżgura l-konsistenza bejn l-ambjenti tal-iżvilupp u tal-produzzjoni.
Hawn taħt hawn xi kunċetti u eżempji ta Docker Compose ’:
Iddefinixxi l-proġett billi tuża l-fajl docker-compose.yml
Fil- docker-compose.yml
fajl, tista' tiddefinixxi s-servizzi meħtieġa għall-applikazzjoni tiegħek. Pereżempju, biex tuża applikazzjoni tal-web PHP b'database MySQL, tista' tiddefinixxi żewġ servizzi kif ġej:
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
Fis-snippet tal-kodiċi ta 'hawn fuq, aħna niddefinixxu żewġ servizzi: web
u db
. Is- web
servizz se juża l-PHP 7.4 image b' Apache, jisma' fuq il-port 80, u jimmonta d- ./app
direttorju mill-host fid- /var/www/html
direttorju fil- container. Is- db
servizz se juża l-MySQL 5.7 image u jistabbilixxi xi varjabbli ambjentali meħtieġa għad-database.
Bl-użu Docker Compose tal-kmand
Ladarba tkun iddefinit il-proġett fil- docker-compose.yml
fajl, tista 'tuża Docker Compose kmandi biex timmaniġġja s-servizzi.
-
Ibda l-proġett:
docker-compose up
Dan il-kmand jibda l-kontenituri għas-servizzi definiti fil-
docker-compose.yml
fajl. -
Waqqaf u neħħi l-kontenituri:
docker-compose down
Dan il-kmand jieqaf u jneħħi l-kontenituri kollha relatati mal-proġett.
-
Elenka kontenituri li qed jaħdmu:
docker-compose ps
Dan il-kmand se juri l-istatus tal-kontenituri fil-proġett.
-
Ara r-reġistri tas-servizz:
docker-compose logs
Dan il-kmand juri r-reġistri tas-servizzi fil-proġett.
Varjabbli ambjentali u customization
Docker Compose jippermettilek tuża varjabbli ambjentali biex tippersonalizza konfigurazzjonijiet għal ambjenti differenti, bħall-iżvilupp u l-produzzjoni. Tista' tuża varjabbli ambjentali fil- docker-compose.yml
fajl u tiddefinixxi l-valuri tagħhom .env
f'fajls korrispondenti.
Pereżempju, jekk trid tiddefinixxi varjabbli ambjentali għall-port tas- web
servizz, tista 'żżid linja mal- .env
fajl bħal din:
WEB_PORT=8080
Imbagħad, fil- docker-compose.yml
fajl, tista 'tuża din il-varjabbli ambjentali bħal din:
version: "3"
services:
web:
image: php:7.4-apache
ports:
- "${WEB_PORT}:80"
volumes:
- ./app:/var/www/html
Meta tħaddem il docker-compose up
-kmand, is- web
servizz se jisma' fuq il-port 8080 minflok il-port 80.
Integrazzjoni ma Docker Swam
Jekk trid tuża l-applikazzjoni tiegħek f'ambjent distribwit b'nodi multipli, Docker Compose tista 'tintegra ma' Docker Swarm. Dan jippermettilek timmaniġġja s-servizzi f'diversi nodi fi Docker cluster.
Biex tuża din l-integrazzjoni, għandek bżonn biss li żżid l- għażliet --orchestrate
jew --with-registry-auth
meta taħdem docker stack deploy
jew docker-compose up
tikkmanda f'ambjent Swarm.
Docker Compose hija għodda utli għall-iżvilupp, l-ittestjar u l-iskjerament ta' applikazzjoni faċli u effiċjenti. Jimminimizza d-differenzi bejn l-ambjenti tal-iżvilupp u tal-produzzjoni, jiżgura l-konsistenza fil-proċess tal-iżvilupp tas-softwer, u jsaħħaħ il-produttività tat-timijiet tal-iżvilupp.