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

Jak nainstalovat a používat Docker Compose na Ubuntu 22.04

Úvod

Docker zjednodušuje proces správy aplikačních procesů v kontejnerech. I když jsou kontejnery v určitých ohledech podobné virtuálním strojům, jsou lehčí a šetrnější ke zdrojům. To umožňuje vývojářům rozdělit aplikační prostředí do několika izolovaných služeb.

U aplikací závislých na několika službách může být organizování všech kontejnerů pro společné spouštění, komunikaci a vypínání rychle nepraktické. Docker Compose je nástroj, který vám umožňuje spouštět prostředí aplikací s více kontejnery na základě definic nastavených v souboru YAML. Používá definice služeb k vytváření plně přizpůsobitelných prostředí s více kontejnery, které mohou sdílet sítě a objemy dat.

V této příručce si ukážete, jak nainstalovat Docker Compose na server Ubuntu 22.04 a jak začít tento nástroj používat.

Předpoklady

Abyste mohli postupovat podle tohoto článku, budete potřebovat:

  • Přístup k místnímu počítači nebo vývojovému serveru Ubuntu 22.04 jako uživatel bez oprávnění root s právy sudo. Pokud používáte vzdálený server, je vhodné mít nainstalovaný aktivní firewall. Chcete-li je nastavit, nahlédněte do našeho Průvodce počátečním nastavením serveru pro Ubuntu 22.04.
  • Docker nainstalovaný na vašem serveru nebo místním počítači podle kroků 1 a 2 o tom, jak nainstalovat a používat Docker na Ubuntu 22.04.

Poznámka: Počínaje verzí Docker Compose v2 přešel Docker na používání compose CLI plugin příkaz, a pryč od původního docker-compose jak je zdokumentováno v naší předchozí verzi Ubuntu 20.04 tohoto návodu. I když se instalace liší, obecně skutečné použití zahrnuje vypuštění pomlčky z docker-compose volání, aby se staly docker compose . Úplné podrobnosti o kompatibilitě najdete v oficiální dokumentaci Docker o kompatibilitě příkazů mezi novým compose a starý docker-compose .

Krok 1 – Instalace Docker Compose

Abyste měli jistotu, že získáte nejaktuálnější stabilní verzi Docker Compose, stáhnete si tento software z jeho oficiálního úložiště Github.

Nejprve potvrďte nejnovější dostupnou verzi na stránce jejich vydání. V době psaní tohoto článku je nejnovější stabilní verze 2.3.3 .

Ke stažení použijte následující příkaz:

  1. mkdir -p ~/.docker/cli-plugins/
  2. curl -SL https://github.com/docker/compose/releases/download/v2.3.3/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose

Dále nastavte správná oprávnění tak, aby docker compose příkaz je spustitelný:

  1. chmod +x ~/.docker/cli-plugins/docker-compose

Chcete-li ověřit, že instalace proběhla úspěšně, můžete spustit:

  1. docker compose version

Uvidíte výstup podobný tomuto:

OutputDocker Compose version v2.3.3

Docker Compose je nyní úspěšně nainstalován ve vašem systému. V další části uvidíte, jak nastavit docker-compose.yml soubor a pomocí tohoto nástroje zprovozněte a zprovozněte kontejnerizované prostředí.

Krok 2 – Nastavení docker-compose.yml Soubor

Ukázat, jak nastavit docker-compose.yml a pracovat s Docker Compose, vytvoříte prostředí webového serveru pomocí oficiálního obrazu Nginx z Docker Hub, veřejného registru Docker. Toto kontejnerové prostředí bude sloužit jako jeden statický soubor HTML.

Začněte vytvořením nového adresáře ve své domovské složce a poté se do něj přesunete:

  1. mkdir ~/compose-demo
  2. cd ~/compose-demo

V tomto adresáři nastavte složku aplikace, která bude sloužit jako kořen dokumentu pro vaše prostředí Nginx:

  1. mkdir app

Pomocí preferovaného textového editoru vytvořte nový index.html soubor v app složka:

  1. nano app/index.html

Do tohoto souboru umístěte následující obsah:

~/compose-demo/app/index.html
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Docker Compose Demo</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/kognise/water.css@latest/dist/dark.min.css">
</head>
<body>

    <h1>This is a Docker Compose Demo Page.</h1>
    <p>This content is being served by an Nginx container.</p>

</body>
</html>

Až budete hotovi, uložte a zavřete soubor. Pokud používáte nano , můžete to udělat zadáním CTRL+X a poté Y a ENTER pro potvrzení.

Dále vytvořte docker-compose.yml soubor:

  1. nano docker-compose.yml

Do souboru docker-compose.yml vložte následující obsah soubor:

docker-compose.yml
version: '3.7'
services:
  web:
    image: nginx:alpine
    ports:
      - "8000:80"
    volumes:
      - ./app:/usr/share/nginx/html

Soubor docker-compose.yml soubor obvykle začíná version definice. Tím Docker Compose sdělíte, kterou verzi konfigurace používáte.

Poté máte services blok, kde nastavujete služby, které jsou součástí tohoto prostředí. Ve vašem případě máte jedinou službu s názvem web . Tato služba používá nginx:alpine image a nastaví přesměrování portu pomocí ports směrnice. Všechny požadavky na portu 8000 hostitele počítač (systém, ze kterého spouštíte Docker Compose) bude přesměrován na web kontejner na portu 80 , kde poběží Nginx.

volumes Direktiva vytvoří sdílený svazek mezi hostitelským počítačem a kontejnerem. Tím se bude sdílet místní app složku s kontejnerem a svazek bude umístěn na adrese /usr/share/nginx/html uvnitř kontejneru, který pak přepíše výchozí kořen dokumentu pro Nginx.

Uložte a zavřete soubor.

Nastavili jste ukázkovou stránku a docker-compose.yml soubor k vytvoření kontejnerového prostředí webového serveru, které jej bude obsluhovat. V dalším kroku toto prostředí vyvoláte pomocí Docker Compose.

Krok 3 — Spuštění Docker Compose

Pomocí docker-compose.yml soubor na místě, můžete nyní spustit Docker Compose a oživit své prostředí. Následující příkaz stáhne potřebné obrazy Docker a vytvoří kontejner pro web a spusťte kontejnerizované prostředí v režimu na pozadí:

  1. docker compose up -d

Docker Compose nejprve vyhledá definovaný obrázek na vašem místním systému, a pokud nemůže obrázek najít, stáhne obrázek z Docker Hub. Uvidíte výstup takto:

OutputCreating network "compose-demo_default" with the default driver
Pulling web (nginx:alpine)...
alpine: Pulling from library/nginx
cbdbe7a5bc2a: Pull complete
10c113fb0c77: Pull complete
9ba64393807b: Pull complete
c829a9c40ab2: Pull complete
61d685417b2f: Pull complete
Digest: sha256:57254039c6313fe8c53f1acbf15657ec9616a813397b74b063e32443427c5502
Status: Downloaded newer image for nginx:alpine
Creating compose-demo_web_1 ... done

Poznámka: Pokud narazíte na chybu oprávnění týkající se soketu Docker, znamená to, že jste přeskočili krok 2 Jak nainstalovat a používat Docker na Ubuntu 22.04. Pokud se vrátíte zpět a dokončíte tento krok, povolíte oprávnění ke spouštění příkazů dockeru bez sudo .

Vaše prostředí je nyní spuštěno a běží na pozadí. Chcete-li ověřit, zda je kontejner aktivní, můžete spustit:

  1. docker compose ps

Tento příkaz vám zobrazí informace o běžících kontejnerech a jejich stavu, stejně jako všechna aktuálně používaná přesměrování portů:

Output       Name                     Command               State          Ports        
----------------------------------------------------------------------------------
compose-demo_web_1   /docker-entrypoint.sh ngin ...   Up      0.0.0.0:8000->80/tcp

Nyní můžete přistupovat k demo aplikaci tak, že v prohlížeči nasměrujete buď na localhost:8000 pokud toto demo spouštíte na svém místním počítači nebo your_server_domain_or_IP:8000 pokud toto demo spouštíte na vzdáleném serveru.

Zobrazí se stránka podobná této:

Sdílený svazek, který jste nastavili v rámci docker-compose.yml soubor uchovává vaši app soubory složky synchronizované s kořenem dokumentu kontejneru. Pokud provedete nějaké změny v souboru index.html soubor, budou automaticky vyzvednuty kontejnerem a projeví se tak ve vašem prohlížeči, když znovu načtete stránku.

V dalším kroku uvidíte, jak spravovat své kontejnerové prostředí pomocí příkazů Docker Compose.

Krok 4 — Seznámení s příkazy Docker Compose

Viděli jste, jak nastavit docker-compose.yml soubor a oživte své prostředí pomocí docker compose up . Nyní uvidíte, jak používat příkazy Docker Compose ke správě a interakci s vaším kontejnerovým prostředím.

Chcete-li zkontrolovat protokoly vytvořené vaším kontejnerem Nginx, můžete použít logs příkaz:

  1. docker compose logs

Uvidíte výstup podobný tomuto:

OutputAttaching to compose-demo_web_1
web_1  | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
web_1  | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
web_1  | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
web_1  | 10-listen-on-ipv6-by-default.sh: Getting the checksum of /etc/nginx/conf.d/default.conf
web_1  | 10-listen-on-ipv6-by-default.sh: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
web_1  | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
web_1  | /docker-entrypoint.sh: Configuration complete; ready for start up
web_1  | 172.22.0.1 - - [02/Jun/2020:10:47:13 +0000] "GET / HTTP/1.1" 200 353 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36" "-"

Pokud chcete pozastavit provádění prostředí, aniž byste změnili aktuální stav vašich kontejnerů, můžete použít:

  1. docker compose pause
OutputPausing compose-demo_web_1 ... done

Obnovení provádění po vydání pauzy:

  1. docker compose unpause
OutputUnpausing compose-demo_web_1 ... done

stop příkaz ukončí provádění kontejneru, ale nezničí žádná data spojená s vašimi kontejnery:

  1. docker compose stop
OutputStopping compose-demo_web_1 ... done

Pokud chcete odstranit kontejnery, sítě a svazky spojené s tímto kontejnerovým prostředím, použijte down příkaz:

  1. docker compose down
OutputRemoving compose-demo_web_1 ... done
Removing network compose-demo_default

Všimněte si, že to neodstraní základní obrázek, který Docker Compose používá k oživení vašeho prostředí (ve vašem případě nginx:alpine ). Tímto způsobem, kdykoli znovu vyvoláte své prostředí pomocí docker compose up , proces bude mnohem rychlejší, protože obraz je již ve vašem systému.

V případě, že chcete ze systému odstranit také základní obraz, můžete použít:

  1. docker image rm nginx:alpine
OutputUntagged: nginx:alpine
Untagged: nginx@sha256:b89a6ccbda39576ad23fd079978c967cecc6b170db6e7ff8a769bf2259a71912
Deleted: sha256:7d0cdcc60a96a5124763fddf5d534d058ad7d0d8d4c3b8be2aefedf4267d0270
Deleted: sha256:05a0eaca15d731e0029a7604ef54f0dda3b736d4e987e6ac87b91ac7aac03ab1
Deleted: sha256:c6bbc4bdac396583641cb44cd35126b2c195be8fe1ac5e6c577c14752bbe9157
Deleted: sha256:35789b1e1a362b0da8392ca7d5759ef08b9a6b7141cc1521570f984dc7905eb6
Deleted: sha256:a3efaa65ec344c882fe5d543a392a54c4ceacd1efd91662d06964211b1be4c08
Deleted: sha256:3e207b409db364b595ba862cdc12be96dcdad8e36c59a03b7b3b61c946a5741a

Poznámka :Podrobnější informace o příkazech Dockeru naleznete v naší příručce Jak nainstalovat a používat Docker.

Závěr

V této příručce jste viděli, jak nainstalovat Docker Compose a nastavit kontejnerové prostředí založené na obrázku webového serveru Nginx. Také jste viděli, jak spravovat toto prostředí pomocí příkazů Compose.

Úplný odkaz na všechny dostupné docker compose příkazy, podívejte se do oficiální dokumentace.


Docker
  1. Jak nainstalovat a používat Docker v Ubuntu 20.04

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

  3. Jak nainstalovat Docker Compose na Ubuntu 18.04

  1. Jak nainstalovat Docker Compose na Ubuntu 18.04

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

  3. Jak nainstalovat Docker Compose na Ubuntu 20.04

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

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

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