GNU/Linux >> Znalost Linux >  >> Ubuntu

Co je Docker Compose

Ú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.04

Pří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 nebo COMPOSE_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.


Ubuntu
  1. Co je Docker (a Linux kontejnery?)

  2. Jak používat Docker Compose

  3. Co je nového v Docker Compose v2?

  1. Rychlý průvodce používáním Docker Compose

  2. Jak nainstalovat Docker Compose na Ubuntu 18.04

  3. Proč Deis a co to je?

  1. Co je Docker?

  2. Jak nainstalovat Docker Compose na Ubuntu 18.04

  3. Nastavení názvu hostitele v Docker Compose