Docker Compose je nesmírně oblíbený nástroj pro práci s kontejnery. Zatímco obyčejný docker
CLI interaguje vždy s jedním kontejnerem, docker-compose
umožňuje souhrnně ovládat více kontejnerů.
Compose v současnosti existuje jako samostatný projekt, který je distribuován nezávisle na Dockeru. Pokud chcete používat aplikaci Compose, budete si ji muset stáhnout samostatně. Mnoho uživatelů nakonec vezme binární soubor přímo, protože správci balíčků OS často zaostávají, i když nabízejí nejnovější verzi Dockeru.
Docker Compose v2 byl oznámen na DockerCon 2021. Slibuje velké změny v prostředí Compose tím, že jej integruje do docker
CLI. v2 také přichází s novými pohodlnými funkcemi, které vám pomohou spravovat stohy kontejnerů.
Nový příkaz „docker compose“
Docker Compose v2 přináší funkci Compose do samotného Dockeru. Compose budete moci používat všude tam, kde je nainstalován nejnovější Docker CLI, žádné další kroky nejsou potřeba. Níže Docker nadále používá funkce poskytované projektem Compose.
Stávající docker-compose
příkazy by se měly mapovat přímo do jejich nového docker compose
protějšky. Ve většině případů můžete pomlčku vypustit bez nutnosti dalších změn. docker compose
podporuje téměř všechny dílčí příkazy a příznaky Compose v1, ačkoli menšina nebude implementována.
Compose v2 bude stále podporovat vyvolání prostřednictvím docker-compose
binární. Stávající skripty pracovních postupů by měly fungovat i nadále, i když je okamžitě neaktualizujete, aby používaly docker compose
. Z dlouhodobého hlediska je pravděpodobné, že většina autorů místo toho přejde na novou formu.
Experimentování s Docker Compose v2
Compose v2 je aktuálně ve verzi beta. Přestože zůstává ve vývoji, nový binární soubor se již dodává s Docker Desktop pro Windows a Mac. Desktop ve verzi 3.4 přidal podporu pro docker compose
příkazy, takže je pravděpodobné, že jej můžete použít již dnes. Linuxové balíčky budou aktualizovány později v průběhu roku; mezitím je k dispozici ruční instalační skript.
docker-compose
příkaz může aktuálně vyvolat v1 nebo v2, výchozí je v1. Tato možnost se automaticky zapíná pro podmnožinu uživatelů; nakonec se spustí v2 pro všechny.
docker-compose
můžete ručně přepnout mezi v1 a v2 spuštěním docker-compose disable-v2
nebo docker-compose enable-v2
. To vám umožní zachovat kompatibilitu se všemi existujícími soubory Compose, které nefungují s v2. docker compose
příkazy budou vždy používat v2.
Změny specifikací
Zavedení funkce Compose do rozhraní CLI Dockeru si vyžádalo změny ve specifikaci Compose. To nyní rozlišuje mezi implementacemi příkazů a docker-compose.yml
formát YAML.
Revidovaný přístup poskytuje nové příležitosti k integraci dalších funkcí. Experimentální implementace mohou být poskytovány rychleji a tým Compose je lépe vybaven pro přidávání komunitních návrhů. CLI je více odděleno od formátu souboru YAML, takže alternativní implementace (jako docker compose
) jsou možností.
Kromě rozhraní CLI umožňuje existence specifikace Composer poskytovatelům cloudu také implementovat funkci Compose. Nyní můžete spustit docker compose up
v kontextu cloudového Dockeru pro spuštění vaší aplikace v produkci. Docker přichází s vestavěnou podporou pro prostředí Amazon ECS a Microsoft ACI.
Interně Compose v2 používá ve výchozím nastavení Buildkit pro rychlejší sestavení. Celkový výkon by měl být rychlejší, protože více úloh běží paralelně, čímž se zkracuje doba zpracování.
Nové funkce ve verzi 2
Přechod z docker-compose
k docker compose
není jedinou změnou ve verzi 2. Existují také nové funkce, které ovlivňují vaši interakci se zásobníky kontejnerů.
Jedním z omezení Compose v1 je jeho přístup k názvům projektů. Když spustíte docker-compose up -d
, Compose přidá název projektu před název služby každého kontejneru. Tím zajistíte, že všechny kontejnery budou seskupeny.
v1 odvozuje název projektu z názvu vašeho pracovního adresáře. Ručně můžete zvolit jiný název nastavením COMPOSE_PROJECT_NAME
proměnná prostředí.
v2 to zjednodušuje přidáním příznaku CLI pro nastavení názvu projektu. Přidejte --project-name
nebo -p
ignorovat název pracovního adresáře, aniž by se změnilo prostředí. Ruční nastavení názvu projektu vám umožní kombinovat kontejnery z více pracovních adresářů do jednoho zásobníku nebo spustit více instancí zásobníku kontejnerů.
Další nová funkce v2 vám umožní vypsat všechny zásobníky Compose ve vašem systému. docker compose ls
poskytuje tabulku názvů projektů a jejich stav (běžící nebo zastavený). Toto doplňuje docker compose ps
příkaz, který udává stavy kontejnerů v zásobníku.
Compose v2 také přidává podporu pro docker compose cp
. Tento příkaz funguje podobně jako docker cp
a umožňuje kopírovat soubory do az vašich kontejnerů:
docker cp my-container local-file.txt /path/to/container/file.txt
Přehled
Docker Compose v2 je podstatný upgrade, který přináší lepší pohodlí do nástroje pro správu kontejnerů. Integrace Compose do hlavního rozhraní příkazového řádku Dockeru znamená, že je k dispozici všude, kde je Docker. Díky tomu je přístupnější a snazší s ním začít.
Compose v2 také přináší některé další pomocné příkazy, které usnadňují práci s různými zásobníky a kontejnery. Získáte lepší přehled o tom, co běží ve vašem systému. I když je v době psaní tohoto článku stále ve verzi beta, uživatelé Windows a Mac mohou používat verzi 2 dnes, zatímco uživatelé Linuxu si mohou stáhnout nejnovější sestavení z GitHubu.