Docker Compose: Misingi na Matumizi

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.