Docker Compose është një mjet i fuqishëm dhe popullor që përdoret për menaxhimin dhe vendosjen e aplikacioneve të bazuara në Docker. Kjo ju lejon të përcaktoni, konfiguroni dhe ekzekutoni Docker kontejnerë të shumtë si një projekt i vetëm, duke thjeshtuar vendosjen e aplikacionit dhe duke siguruar qëndrueshmëri midis mjediseve të zhvillimit dhe prodhimit.
Më poshtë janë disa koncepte dhe shembuj të Docker Compose:
Përcaktoni projektin duke përdorur skedarin docker-compose.yml
Në docker-compose.yml
skedar, ju mund të përcaktoni shërbimet e kërkuara për aplikacionin tuaj. Për shembull, për të vendosur një aplikacion ueb PHP me një bazë të dhënash MySQL, mund të përcaktoni dy shërbime si më poshtë:
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
Në fragmentin e kodit të mësipërm, ne përcaktojmë dy shërbime: web
dhe db
. Shërbimi web
do të përdorë PHP 7.4 image me Apache, do të dëgjojë në portin 80 dhe do ta montojë ./app
direktorinë nga hosti në /var/www/html
drejtorinë në container. Shërbimi db
do të përdorë MySQL 5.7 image dhe do të vendosë disa variabla mjedisore të kërkuara për bazën e të dhënave.
Duke përdorur Docker Compose komandën
Pasi të keni përcaktuar projektin në docker-compose.yml
skedar, mund të përdorni Docker Compose komanda për të menaxhuar shërbimet.
-
Filloni projektin:
docker-compose up
Kjo komandë do të nisë kontejnerët për shërbimet e përcaktuara në
docker-compose.yml
skedar. -
Ndaloni dhe hiqni kontejnerët:
docker-compose down
Kjo komandë ndalon dhe heq të gjithë kontejnerët që lidhen me projektin.
-
Listoni kontejnerët që funksionojnë:
docker-compose ps
Kjo komandë do të shfaq statusin e kontejnerëve në projekt.
-
Shiko regjistrat e shërbimit:
docker-compose logs
Kjo komandë tregon regjistrat e shërbimeve në projekt.
Variablat e mjedisit dhe personalizimi
Docker Compose ju lejon të përdorni variablat e mjedisit për të personalizuar konfigurimet për mjedise të ndryshme, si zhvillimi dhe prodhimi. Mund të përdorni variabla të mjedisit në docker-compose.yml
skedar dhe të përcaktoni vlerat e tyre në .env
skedarët përkatës.
Për shembull, nëse dëshironi të përcaktoni një variabël mjedisi për portin e web
shërbimit, mund të shtoni një rresht në .env
skedar si kjo:
WEB_PORT=8080
Pastaj, në docker-compose.yml
skedar, mund të përdorni këtë variabël mjedisi si kjo:
version: "3"
services:
web:
image: php:7.4-apache
ports:
- "${WEB_PORT}:80"
volumes:
- ./app:/var/www/html
Kur ekzekutoni docker-compose up
komandën, web
shërbimi do të dëgjojë në portin 8080 në vend të portit 80.
Integrimi me Docker Swam
Nëse dëshironi të vendosni aplikacionin tuaj në një mjedis të shpërndarë me nyje të shumta, Docker Compose mund të integroheni me Docker Swarm. Kjo ju lejon të menaxhoni shërbimet nëpër nyje të shumta në një Docker grup.
Për të përdorur këtë integrim, ju vetëm duhet të shtoni opsionet --orchestrate
ose --with-registry-auth
kur ekzekutoni docker stack deploy
ose docker-compose up
komandat në një Swarm mjedis.
Docker Compose është një mjet i dobishëm për zhvillimin, testimin dhe vendosjen e lehtë dhe efikase të aplikacioneve. Ai minimizon ndryshimet midis mjediseve të zhvillimit dhe prodhimit, siguron qëndrueshmëri në procesin e zhvillimit të softuerit dhe rrit produktivitetin e ekipeve të zhvillimit.