Docker Compose: Pagrindai ir naudojimas

Docker Compose yra galingas ir populiarus įrankis, naudojamas tvarkyti ir diegti programas, pagrįstas Docker. Tai leidžia apibrėžti, konfigūruoti ir paleisti kelis Docker konteinerius kaip vieną projektą, supaprastinant programų diegimą ir užtikrinant kūrimo ir gamybos aplinkų nuoseklumą.

Žemiau pateikiamos kelios sąvokos ir pavyzdžiai Docker Compose:

Apibrėžkite projektą naudodami docker-compose.yml failą

Faile docker-compose.yml galite apibrėžti jūsų programai reikalingas paslaugas. Pavyzdžiui, norėdami įdiegti PHP žiniatinklio programą su MySQL duomenų baze, galite apibrėžti dvi paslaugas taip:

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  

Aukščiau pateiktame kodo fragmente apibrėžiame dvi paslaugas: web ir db. Paslauga web naudos PHP 7.4 image su Apache, klausys per 80 prievadą ir prijungs ./app katalogą iš pagrindinio kompiuterio į /var/www/html katalogą container. Paslauga db naudos MySQL 5.7 image ir nustatys kai kuriuos aplinkos kintamuosius, reikalingus duomenų bazei.

 

Naudojant Docker Compose komandą

Apibrėžę projektą faile docker-compose.yml, galite naudoti Docker Compose komandas, kad galėtumėte valdyti paslaugas.

  • Pradėkite projektą: docker-compose up

    Ši komanda paleis faile apibrėžtų paslaugų konteinerius docker-compose.yml.

  • Sustabdykite ir išimkite talpyklas: docker-compose down

    Ši komanda sustabdo ir pašalina visus su projektu susijusius konteinerius.

  • Sąrašas veikiančių konteinerių: docker-compose ps

    Ši komanda parodys projekte esančių konteinerių būseną.

  • Peržiūrėkite paslaugų žurnalus: docker-compose logs

    Ši komanda rodo projekto paslaugų žurnalus.

 

Aplinkos kintamieji ir pritaikymas

Docker Compose leidžia naudoti aplinkos kintamuosius konfigūracijai pritaikyti skirtingoms aplinkoms, pvz., kūrimui ir gamybai. Galite naudoti aplinkos kintamuosius faile docker-compose.yml ir apibrėžti jų reikšmes atitinkamuose .env failuose.

Pavyzdžiui, jei norite apibrėžti paslaugos prievado aplinkos kintamąjį web, prie failo galite pridėti .env tokią eilutę:

WEB_PORT=8080

Tada faile docker-compose.yml galite naudoti šį aplinkos kintamąjį taip:

version: "3"  
services:  
  web:  
    image: php:7.4-apache  
    ports:  
   - "${WEB_PORT}:80"  
    volumes:  
   - ./app:/var/www/html  

Vykdant docker-compose up komandą, web paslauga klausys 8080 prievado, o ne 80 prievado.

 

Integracija su Docker Swam

Jei norite įdiegti programą paskirstytoje aplinkoje su keliais mazgais, Docker Compose galite integruoti su Docker Swarm. Tai leidžia valdyti paslaugas keliuose klasterio mazguose Docker.

Jei norite naudoti šią integraciją, jums tereikia pridėti --orchestrate arba --with-registry-auth parinktis, kai paleisite docker stack deploy arba docker-compose up komandas aplinkoje Swarm.

 

Docker Compose yra naudingas įrankis lengvam ir efektyviam programų kūrimui, testavimui ir diegimui. Tai sumažina skirtumus tarp kūrimo ir gamybos aplinkų, užtikrina programinės įrangos kūrimo proceso nuoseklumą ir padidina kūrimo komandų produktyvumą.