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ą.