Úvod
Vývoj aplikací pomocí Dockeru může být náročný při žonglování s více službami a kontejnery. Přečtěte si o Docker Compose, nástroji, který vám pomůže spouštět prostředí aplikací s více kontejnery.
V tomto tutoriálu se dozvíte vše o Docker Compose, výhodách používání tohoto nástroje, jeho případech použití a funkcích.
Co je Docker Compose?
Aplikace se může skládat z více kontejnerů s různými službami. Ruční spouštění a správa kontejnerů může být únavné, proto Docker vytvořil užitečný nástroj, který pomáhá urychlit proces – Docker Compose.
Docker Compose je software používaný k definování a spouštění vícekontejnerových aplikací Docker. Dokáže pracovat s více kontejnery současně v produkčním, pracovním, vývojovém, testovacím a CI prostředí. Proto použijte Docker Compose ke správě celého životního cyklu vývoje softwaru (SDLC).
Docker Compose funguje na principu použití pravidel definovaných v docker-compose.yaml soubor. Soubor YAML konfiguruje služby aplikace a obsahuje pravidla určující, jak je chcete spouštět. Se souborem na místě můžete spustit, zastavit nebo znovu vytvořit všechny služby pomocí jediného příkazu. Kromě toho můžete kontrolovat stav služby, zobrazovat výstupy protokolu a spouštět jednorázové příkazy.
Instalace Docker Compose je jednoduchá. Pokyny krok za krokem naleznete na adrese:
Jak nainstalovat Docker Compose na Ubuntu 18.04Jak nainstalovat Docker Compose na CentOS 7Jak nainstalovat Docker Compose na Ubuntu 20.04Případy použití Docker Compose
Mezi běžné případy použití Docker Compose patří:
- Prostředí automatického testování . Compose podporuje automatizované testování, které je nezbytnou součástí CI/CD, protože může snadno vytvořit a zničit požadované testovací prostředí. Vývojáři mohou definovat a konfigurovat prostředí potřebné pro spuštění automatizovaného komplexního testování pomocí příslušného souboru Docker Compose.
- Zavedení s jedním hostitelem . V Docker Compose jsou kontejnery navrženy tak, aby běžely na jednom hostiteli, protože se tradičně zaměřovaly na vývojové a testovací pracovní postupy.
- Prostředí pro vývoj . Compose je rychlý a jednoduchý způsob spouštění projektů, protože dokáže rychle vytvořit nová izolovaná vývojová prostředí. Software dokumentuje a konfiguruje všechny závislosti služeb aplikace (včetně databází, mezipaměti, rozhraní API webových služeb atd.). Umožňuje vám vytvořit a spustit jeden nebo více kontejnerů pro každou závislost pomocí jediného příkazu.
Výhody Docker Compose
Zde jsou některé z hlavních výhod používání Docker Compose:
- Rychlá a jednoduchá konfigurace. Díky YAML skriptům a proměnným prostředí můžete snadno konfigurovat nebo upravovat aplikační služby.
- Zabezpečení interní komunikace. Compose vytváří síť pro sdílení všech služeb. To přidává další vrstvu zabezpečení pro aplikaci, protože ke službám nelze přistupovat externě.
- Přenositelnost a podpora CI/CD. Vzhledem k tomu, že všechny služby jsou definovány uvnitř souboru docker-compose, mohou vývojáři snadno přistupovat k celé konfiguraci a sdílet ji. Stažením souboru YAML a zdrojového kódu mohou spustit prostředí během několika minut. To přispívá k nastavení a umožnění efektivního CI/CD potrubí.
- Efektivní využívání zdrojů. Docker Compose vám umožňuje hostovat více izolovaných prostředí na jednom hostiteli. Spuštění všeho na jediném hardwaru vám umožní ušetřit spoustu zdrojů. Jeho funkce, které mu umožňují ukládat konfiguraci do mezipaměti a znovu používat existující kontejnery, také přispívají k efektivitě zdrojů.
Funkce Docker Compose
Existuje několik prominentních funkcí Docker Compose, které poskytují výhody uvedené výše.
Hostování více izolovaných prostředí na jednom hostiteli
Compose udržuje prostředí izolovaná od sebe na jednom hostiteli pomocí názvů projektů.
Ve výchozím nastavení je název projektu základním názvem adresáře projektu, zatímco adresář projektu je základním adresářem souboru docker-compose. Výchozí hodnoty můžete změnit:
- Nastavte název projektu pomocí
-p
možnost příkazového řádku neboCOMPOSE_PROJECT_NAME
proměnná prostředí. - Nastavte adresář projektu pomocí
--project-directory
proměnná prostředí.
Tuto funkci můžete využít na dev hostiteli ke spuštění stabilních kopií každé funkční větve vašeho projektu vytvořením více kopií prostředí pod různými názvy.
Pokud pracujete na serveru CI nebo sdíleném hostiteli, chcete se ujistit, že se sestavení navzájem neovlivňují. Chcete-li tak učinit, nastavte názvy projektů na jedinečná čísla sestavení.
Podpora proměnných prostředí
Kontejnery můžete přizpůsobit pro různá prostředí nebo uživatele přidáním proměnných prostředí do souboru docker-compose. To vám dává větší flexibilitu při nastavování kontejnerů pomocí Compose, protože hodnoty proměnných nejsou v konfiguraci pevně zakódovány.
Hodnoty proměnných lze nastavit v prostředí shellu (ze kterého spouštíte docker-compose
) nebo v souboru .env (uloženém v adresáři projektu). Ve výchozím nastavení Docker compose použije hodnoty zadané v souboru .env. Hodnoty nastavené v prostředí shellu však přepisují hodnoty ze souboru .env.
Tuto funkci můžete použít pro cokoli, od bezpečného poskytování hesel až po specifikaci verze softwaru.
Zachování dat objemu
Další skvělou funkcí Docker Compose je, že šetří data využívaná službami. Nemusíte se proto obávat ztráty dat vytvořených v kontejnerech. Pokud existují kontejnery z předchozích běhů, Compose je najde a zkopíruje jejich svazky do nového běhu.
Opětovné použití stávajících kontejnerů
Compose pouze znovu vytvoří kontejnery, které se od posledního spuštění změnily. Pokud nedojde k žádné změně, znovu použije stávající kontejner.
Tato funkce se opírá o schopnost softwaru ukládat do mezipaměti konfigurace kontejnerů, což vám umožňuje rychleji nastavit vaše služby.
Základní příkazy Docker Compose
Základní syntaxe pro spouštění příkazů Docker Compose je:
docker-compose [command]
Níže naleznete některé z nejzákladnějších příkazů Docker Compose a k čemu se používají.
Příkaz | Popis |
---|---|
docker-compose --help | zobrazit nápovědu, pokyny k použití a argumenty pro příkaz docker-compose |
docker-compose build | hledejte všechny služby obsahující build: v souboru docker-compose.yml a spusťte docker build pro každého |
docker-compose run | spustit jednorázový příkaz proti službě |
docker-compose up | vytvářejte, (znovu)vytvářejte, spouštějte a připojujte ke kontejnerům pro službu |
docker-compose -f [command] | určete umístění konfiguračního souboru docker-compose přidáním -f vlajka |
docker-compose start | spustit existující kontejnery pro službu |
docker-compose stop | zastavit běh kontejnerů (bez jejich odstranění) |
docker-compose pause | pozastavit spuštěné kontejnery služby |
docker-compose unpause | zrušte pozastavení pozastavených kontejnerů služby |
docker-compose down | zastavte kontejnery (a odstraňte kontejnery, sítě, svazky a obrázky) |
docker-compose ps | seznam kontejnerů v konfiguračním souboru docker-compose |
docker-compose images | seznam obrázků používaných vytvořenými kontejnery |
docker-compose ls | seznam spuštěných projektů psaní |
Jak používat Docker Compose?
Při použití funkce Compose jsou tři kroky:
1. Prvním krokem je vytvoření Dockerfile pro definování prostředí aplikace. Soubor vytváří obrazy Docker, které budou použity jako základ pro kontejnery.
2. Dále musíte definovat služby v souboru Compose. Vytvořte nový soubor v adresáři projektu pod názvem docker-compose.yml a definovat své služby pomocí syntaxe YAML. Příklad takového souboru by zahrnoval následující obsah:
version: "3.9"
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}
3. Nakonec spusťte a spravujte aplikaci pomocí rozhraní příkazového řádku Docker Compose. Můžete spustit jeden docker-compose up
příkaz ke spuštění celé aplikace v instanci.