Docker Compose je nástroj pro definování a spouštění vícekontejnerových dockerových aplikací v Linuxu. S Compose používáme ke konfiguraci služeb naší aplikace soubor YAML. A poté vytvoříme a spustíme všechny služby z konfigurace jediným příkazem. Zde je jednoduchá grafická ilustrace, která ukazuje, jak Docker compose funguje.
Jak Docker compose funguje – grafická ilustrace
Docker Compose je v podstatě třístupňový proces:
- Nejprve musíme definovat prostředí aplikace pomocí Dockerfile takže jej lze znovu použít.
- Zadruhé definujeme služby, které tvoří aplikaci v docker-compose.yml takže je lze provozovat společně v izolovaném prostředí.
- Nakonec spustíme docker-compose up a Compose spustí a spustí celou vaši aplikaci.
Začínáme s Docker Compose v Linuxu
Docker Compose lze nainstalovat dvěma způsoby. Pokyny k instalaci naleznete v části Install Docker Compose v následujících odkazech.
- Jak nainstalovat Docker v Ubuntu
- Jak nainstalovat Docker v CentOS
Po instalaci zkontrolujte verzi Docker compose pomocí příkazů:
# docker-compose -version
Nebo,
# docker-compose -v
Nebo,
# docker-compose --version
Zkontrolujte verzi pro psaní dockeru
Chcete-li získat pomoc, jednoduše spusťte:
# docker-compose -help
Tento příkaz zobrazí seznam příkazů, které může docker compose provádět.
nápovědu k psaní docker
Nyní si jako příklad vezměme jednoduchý soubor pro vytvoření dockeru. Zde je obsah mého nového souboru.
Ukázkový soubor pro vytvoření ukotvitelného panelu
Nad souborem pro vytváření zpráv dockeru je minimální soubor pro pochopení základního obsahu souboru pro vytváření zpráv.
Platnost souboru můžeme zkontrolovat pomocí příkazu:
# docker-compose config
Zkontrolujte platnost souboru sestavení dockeru
Pokud zadáte nesprávnou verzi v souboru pro psaní dockeru, zobrazí se vám chybová zpráva.
Chybová zpráva při sestavování souboru Docker
Nyní spusťte soubor pro vytvoření souboru pomocí příkazu:
# docker-compose up -d
Spustí všechny služby jediným příkazem.
Spusťte docker compose
Chcete-li zobrazit seznam běžících kontejnerů vytvořených souborem pro vytvoření souboru, spusťte:
# docker-compose ps
Seznam spuštěných kontejnerů docker
Aplikaci můžeme kdykoli zrušit následujícím příkazem:
# docker-compose down
Zastavte dokovací kontejnery
Můžeme také nginx přiřadit jiný port, například 8181.
Chcete-li to provést, definujte port v souboru pro vytváření zpráv, jak je znázorněno na následujícím obrázku.
Definujte kontejner portu nginx
Nyní je nginx vystaven portu 8181. Spusťte kontejner a zkontrolujte, zda Nginx běží na portu 8181.
Spusťte kontejner nginx
Otevřete prohlížeč a ověřte, zda běží na portu 8181.
Otestujte kontejner nginx ve webovém prohlížeči
Pokud chcete službu škálovat, můžete to udělat pomocí příkazu:
# docker-compose up -d --scale database=3
Škálování služeb pomocí docker compose
Chcete-li zobrazit spuštěné služby, spusťte:
# docker-compose top
Zobrazení běžících služeb pomocí docker compose
Chcete-li zastavit, začněte. restartujte celou službu najednou, příkazy by byly:
# docker-compose stop
# docker-compose start
# docker-compose restart
Logy služeb můžeme zobrazit pomocí příkazu:
# docker-compose logs
Zobrazit protokoly služeb
Vytváření sítí v docker-compose
Docker Compose ve výchozím nastavení nastaví pro vaši aplikaci jednu síť. Každý kontejner se připojí k výchozí síti a kontejnery budou moci komunikovat v této výchozí síti.
Pokud však nechcete výchozí síť, můžete vytvořit novou síť pomocí příkazu Compose.
Pro účely této příručky používám následující tři soubory:
- Dockerfile
- docker-compose.yml
- server.py
Zde je obsah Dockerfile:
obsah dockerfile
Obsah souboru docker-compose.yml:
Docker složí obsah souboru
Obsah souboru server.py:
obsah souboru aplikace
Nyní vytvořte obrázek pomocí příkazu:
# docker-compose build
Po dokončení sestavení uvidíte následující výstup:
Vytvořit obrázek dockeru
Jak můžete vidět, obraz je úspěšně vytvořen. Můžete to ověřit pomocí příkazu:
# docker images
Vypsat obrázky ukotvitelného panelu
Jak vidíte na výše uvedeném výstupu, obraz Dockeru s názvem image1 je vytvořen.
Nyní spusťte nový soubor:
# docker-compose up -d
Spusťte soubor docker compose file
Zkontrolujte, zda je nová síť vytvořena nebo ne, pomocí příkazu:
# docker network ls
Zkontrolujte síť docker
Z výše uvedeného snímku obrazovky můžeme potvrdit novou síť s názvem dc_network_my-network byl vytvořen.
Zkontrolujeme, zda kontejner běží nebo ne, pomocí příkazu "docker ps":
# docker ps
výstup příkazu docker ps
Ano, kontejner běží!
Nakonec spusťte soubor kódu aplikace (server.py) pomocí příkazu curl:
# curl localhost:15001
Nebo,
# curl 10.26.35.244:15001
výstup aplikace
Získáváme výstup – Ahoj světe z uzlu 1! který je zapsán v souboru server.py. To znamená, že to funguje!
Doporučené čtení:
- Vysvětlení pojmů Docker Networking
- Vysvětlení svazků Docker s příklady
- Jak automaticky aktualizovat spuštěné kontejnery Docker
- ctop – nástroj pro monitorování příkazového řádku pro linuxové kontejnery
- Portainer – nejsnazší způsob správy Dockeru
- PiCluster – jednoduchá webová aplikace pro správu dockerů
- Dockly – Správa kontejnerů Docker z terminálu
O autorovi:
Dhruv Tiwari je DevOps Engineer, který miluje automatizaci věcí, práci s Linuxem ve velkém a sní o dni, kdy budou systémy dostatečně chytré, aby se nikdy nemusely přihlašovat k linuxovému boxu. Cesta CI/CD od zdrojového kódu přes nasazení kódu až po produkci.