GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Co je to Docker Compose a jak jej používáte?

Docker Compose je nástroj, který můžete použít k centrální správě nasazení mnoha různých kontejnerů Docker. Je to důležitý nástroj pro jakoukoli aplikaci, která potřebuje více mikroslužeb, protože umožňuje, aby každá služba byla snadno v odděleně spravovaném kontejneru.

Co dělá Docker Compose?

Docker kontejnery se používají pro spouštění aplikací v izolovaném prostředí. V současné době je zcela běžné vidět nasazení aplikací prováděné v Dockeru pro četné výhody, které přináší. Často to však není tak jednoduché, jako jen provozovat jeden kontejner. Obvykle můžete mít mnoho kontejnerů spojených dohromady, aby fungovaly jako jedna soudržná služba složená z mnoha pohyblivých částí.

Správa toho všeho v době nasazení je komplikovaná, takže k vyčištění poskytuje Docker Docker Compose, konfigurační nástroj používaný pro spouštění více kontejnerů najednou. Můžete definovat veškerou konfiguraci v jednom souboru YAML a poté spustit všechny kontejnery jedním příkazem.

Spíše než mít všechny své služby v jednom velkém kontejneru vám Docker Compose umožňuje rozdělit je do samostatně spravovatelných kontejnerů. To je lepší pro sestavení i nasazení, protože je můžete všechny spravovat v samostatných kódových základnách a nemusíte ručně spouštět každý jednotlivý kontejner.

Použití Docker Compose se skládá ze tří kroků:

  • Vytvořte obrazy komponent pomocí jejich souborů Docker nebo je vytáhněte z registru.
  • Definujte všechny služby komponent v docker-compose.yml soubor.
  • Spusťte je všechny společně pomocí docker-compose CLI.

Docker Compose není jiný druh Dockerfile. Stále budete muset vytvořit a publikovat své kontejnery Docker pomocí souboru Dockerfile. Místo jejich přímého spouštění však můžete použít Docker Compose ke správě konfigurace nasazení s více kontejnery.

Jak používáte Docker Compose?

Konfigurace souboru docker compose se provádí v docker-compose.yml . Nemusíte to umisťovat do kořenového adresáře svého projektu jako Dockerfile. Ve skutečnosti může jít kamkoli, protože nezávisí na žádném jiném kódu. Pokud však vytváříte obrázky lokálně, bude nutné je uložit do složky projektu s vytvářeným kódem.

Konfigurační soubor Compose bude vypadat asi takto. Tato konfigurace spouští instanci WordPress pomocí wordpress kontejner mimo Docker Hub. To však závisí na databázi MySQL, kterou také vytváří Compose.

version: '3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: rootpasswordchangeme
       MYSQL_DATABASE: wordpress
       MYSQL_USER: usernamechangeme
       MYSQL_PASSWORD: passwordchangeme

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: usernamechangeme
       WORDPRESS_DB_PASSWORD: passwordchangeme
volumes:
    db_data:

Podívejme se na formát tohoto souboru. Nejprve číslo verze, protože syntaxe se může měnit v závislosti na verzi, kterou používáte.

Dále seznam Služeb. První se jmenuje „db“ a používá mysql:5.7 kontejner, nastavte na vždy restartování a pomocí proměnných prostředí nakonfigurujte databázi pomocí uživatele a hesla. Aby byla zachována data po restartování, je tento obraz nakonfigurován se svazkem Docker připojeným k datovému adresáři MySQL.

Další službou je „wordpress“, která závisí na databázové službě a zajišťuje, že Docker se před spuštěním ujistí, že je databáze spuštěna. Vystavuje port 80 jako port 8000 a nastavuje některé proměnné prostředí, aby se mohl připojit k MySQL. Všimněte si, že hostitel pro databázi je nastaven na db:3306 , který říká kontejneru WordPress, aby se připojil ke službě „db“.

Nakonec jsou svazky definovány pro trvalé úložiště. Volitelně můžete také definovat vlastní síť pro kontejnery. Existuje spousta rozšířených možností, které můžete nakonfigurovat, takže pokud chcete udělat něco konkrétního, měli byste se podívat do dokumentace k Docker Compose.

Po konfiguraci je spuštění této služby snadné. Jednoduše spusťte docker-compose up , který vytáhne všechny požadované kontejnery a spustí vaše služby.

docker-compose up -d

A měli byste vidět služby spuštěné v systému pomocí docker ps . V tomto případě uvidíte, že WordPress funguje správně.

SOUVISEJÍCÍ: Jak nainstalovat Docker a Docker Compose v systému Linux

Vytváření pomocí Docker Compose

Docker Compose lze také použít v rámci projektu Dockerfile a lze jej nastavit tak, aby vytvořil a spouštěl bitovou kopii lokálně namísto stahování z centra Docker.

Chcete-li tak učinit, stačí přidat build sekce o službě. Můžete nastavit různé kontextové adresáře, stejně jako různé Dockerfiles pro různé obrázky.

version: "3.8"
services:
  webapp:
    build:
      context: ./dir
      dockerfile: Dockerfile-alternate
    image: imagename:tag

V tomto případě image: je také nastavena proměnná, ale zde se používá k označení obrázku vytvořeného aplikací Docker Compose.


Docker
  1. Jak používat Docker Compose

  2. Co jsou svazky Docker a jak je používáte?

  3. Jak a proč používat vzdáleného hostitele dockeru

  1. Co je Umask a jak jej používat

  2. Co je to chroot jail a jak jej používat?

  3. Jak nainstalovat a používat Docker Compose na CentOS

  1. Co je Kubernetes DaemonSet a jak jej používat?

  2. Jak nainstalovat a používat Docker Compose na Ubuntu 18.04

  3. Jak nainstalovat a používat Docker Compose na CentOS 7