Docker Compose je výkonný a oblíbený nástroj používaný pro správu a nasazení aplikací založených na Docker. Umožňuje definovat, konfigurovat a provozovat více Docker kontejnerů jako jeden projekt, zjednodušuje nasazení aplikací a zajišťuje konzistenci mezi vývojovým a produkčním prostředím.
Níže jsou uvedeny některé koncepty a příklady Docker Compose:
Definujte projekt pomocí souboru docker-compose.yml
V docker-compose.yml
souboru můžete definovat služby požadované pro vaši aplikaci. Chcete-li například nasadit webovou aplikaci PHP s databází MySQL, můžete definovat dvě služby takto:
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
Ve výše uvedeném fragmentu kódu definujeme dvě služby: web
a db
. Služba web
použije PHP 7.4 image s Apache, naslouchá na portu 80 a připojí ./app
adresář z hostitele do /var/www/html
adresáře v container. Služba db
bude používat MySQL 5.7 image a nastaví některé proměnné prostředí požadované pro databázi.
Použití Docker Compose příkazu
Jakmile definujete projekt v docker-compose.yml
souboru, můžete pomocí Docker Compose příkazů spravovat služby.
-
Spusťte projekt:
docker-compose up
Tento příkaz spustí kontejnery pro služby definované v
docker-compose.yml
souboru. -
Zastavte a vyjměte nádoby:
docker-compose down
Tento příkaz zastaví a odstraní všechny kontejnery související s projektem.
-
Seznam běžících kontejnerů:
docker-compose ps
Tento příkaz zobrazí stav kontejnerů v projektu.
-
Zobrazit protokoly služeb:
docker-compose logs
Tento příkaz zobrazuje protokoly služeb v projektu.
Proměnné prostředí a přizpůsobení
Docker Compose umožňuje používat proměnné prostředí k přizpůsobení konfigurací pro různá prostředí, jako je vývoj a produkce. V souboru můžete použít proměnné prostředí docker-compose.yml
a definovat jejich hodnoty v odpovídajících .env
souborech.
Pokud například chcete definovat proměnnou prostředí pro port služby web
, můžete do .env
souboru přidat řádek takto:
WEB_PORT=8080
Pak v docker-compose.yml
souboru můžete použít tuto proměnnou prostředí takto:
version: "3"
services:
web:
image: php:7.4-apache
ports:
- "${WEB_PORT}:80"
volumes:
- ./app:/var/www/html
Při spuštění docker-compose up
příkazu web
bude služba naslouchat na portu 8080 namísto portu 80.
Integrace s Docker Swam
Pokud chcete nasadit svou aplikaci v distribuovaném prostředí s více uzly, Docker Compose můžete se integrovat s Docker Swarm. To vám umožní spravovat služby napříč více uzly v Docker clusteru.
Chcete-li použít tuto integraci, stačí přidat možnosti --orchestrate
nebo --with-registry-auth
při spuštění docker stack deploy
nebo docker-compose up
příkazy v Swarm prostředí.
Docker Compose je užitečný nástroj pro snadný a efektivní vývoj aplikací, testování a nasazení. Minimalizuje rozdíly mezi vývojovým a produkčním prostředím, zajišťuje konzistenci v procesu vývoje softwaru a zvyšuje produktivitu vývojových týmů.