Docker Compose ni zana yenye nguvu na maarufu inayotumiwa kudhibiti na kupeleka programu kulingana na Docker. Inakuruhusu kufafanua, kusanidi, na kuendesha Docker kontena nyingi kama mradi mmoja, kurahisisha utumaji programu na kuhakikisha uthabiti kati ya mazingira ya ukuzaji na uzalishaji.
Ifuatayo ni baadhi ya dhana na mifano ya Docker Compose:
Bainisha mradi kwa kutumia faili ya docker-compose.yml
Katika docker-compose.yml
faili, unaweza kufafanua huduma zinazohitajika kwa programu yako. Kwa mfano, kupeleka programu ya wavuti ya PHP na hifadhidata ya MySQL, unaweza kufafanua huduma mbili kama ifuatavyo:
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
Katika kijisehemu cha msimbo hapo juu, tunafafanua huduma mbili: web
na db
. Huduma web
itatumia PHP 7.4 image na Apache, sikiliza kwenye bandari 80, na uweke ./app
saraka kutoka kwa seva pangishi hadi kwenye /var/www/html
saraka kwenye container. Huduma db
itatumia MySQL 5.7 image na kuweka baadhi ya vigezo vya mazingira vinavyohitajika kwa hifadhidata.
Kwa kutumia Docker Compose amri
Mara baada ya kufafanua mradi katika docker-compose.yml
faili, unaweza kutumia Docker Compose amri kusimamia huduma.
-
Anzisha mradi:
docker-compose up
Amri hii itaanza vyombo vya huduma zilizofafanuliwa kwenye
docker-compose.yml
faili. -
Acha na uondoe vyombo:
docker-compose down
Amri hii inasimamisha na kuondoa vyombo vyote vinavyohusiana na mradi.
-
Orodhesha vyombo vinavyoendesha:
docker-compose ps
Amri hii itaonyesha hali ya vyombo kwenye mradi.
-
Angalia kumbukumbu za huduma:
docker-compose logs
Amri hii inaonyesha kumbukumbu za huduma katika mradi.
Vigezo vya mazingira na ubinafsishaji
Docker Compose hukuruhusu kutumia anuwai za mazingira kubinafsisha usanidi wa mazingira tofauti, kama vile ukuzaji na uzalishaji. Unaweza kutumia anuwai za mazingira kwenye docker-compose.yml
faili na kufafanua maadili yao katika .env
faili zinazolingana.
Kwa mfano, ikiwa unataka kufafanua utofauti wa mazingira kwa bandari ya web
huduma, unaweza kuongeza laini kwenye .env
faili kama hii:
WEB_PORT=8080
Halafu, kwenye docker-compose.yml
faili, unaweza kutumia kutofautisha kwa mazingira kama hii:
version: "3"
services:
web:
image: php:7.4-apache
ports:
- "${WEB_PORT}:80"
volumes:
- ./app:/var/www/html
Wakati wa kutekeleza docker-compose up
amri, web
huduma itasikiza kwenye bandari 8080 badala ya bandari 80.
Kuunganishwa na Docker Swam
Ikiwa unataka kupeleka programu yako kwenye mazingira yaliyosambazwa yenye nodi nyingi, Docker Compose inaweza kuunganishwa na Docker Swarm. Hii hukuruhusu kudhibiti huduma kwenye nodi nyingi kwenye Docker kundi.
Ili kutumia muunganisho huu, unahitaji tu kuongeza --orchestrate
au --with-registry-auth
chaguzi wakati wa kuendesha docker stack deploy
au docker-compose up
kuamuru katika Swarm mazingira.
Docker Compose ni zana muhimu kwa ajili ya ukuzaji wa programu kwa urahisi na kwa ufanisi, majaribio, na upelekaji. Inapunguza tofauti kati ya mazingira ya ukuzaji na uzalishaji, inahakikisha uthabiti katika mchakato wa ukuzaji wa programu, na huongeza tija ya timu za ukuzaji.