Docker Compose je jednoduchý program Python, který pomáhá při snadném nasazení více kontejnerů dockeru na serveru.
Pro popis služby používá jednoduchý soubor YAML.
Místo dlouhého běhu docker run . . .
řádků, stačí použít docker-compose up -d
k nasazení více služeb najednou.
V tomto tutoriálu vám ukážu, jak nainstalovat Docker Compose na server CentOS. Ukážu vám také rychlý příklad použití Docker Compose pro nasazení serveru NGINX se specifickou konfigurací.
Instalace docker-compose na CentOS
Předtím musíte nainstalovat Docker. Před instalací Docker Compose se ujistěte, že máte na svém systému CentOS nainstalován Docker.
docker-compose není zabalen v oficiálních úložištích CentOS ani v úložišti rpm docker.
Existují dva způsoby, jak nainstalovat Docker Compose na Linux:
- Stáhněte si soubory instalačního programu Docker Compose Linux a ručně jej nastavte
- Použijte PIP ke snadné instalaci Docker Compose
Osobně dávám přednost použití PIP k instalaci Docker Compose. Vzhledem k tomu, že Docker Compose je v zásadě aplikace Python, má smysl pro její instalaci používat PIP.
Podívejme se, jak na to.
Instalovat pip3
Nainstalujte pip3 pomocí následujícího příkazu:
sudo dnf install python3-pip
Instalovat docker-compose pomocí pip3
Použijte pip k instalaci docker-compose
pip3 install --user docker-compose
Aktualizovat PATH
pip nainstaluje docker-compose do ~/.local/bin
adresář. Budete ji muset přidat do proměnné prostředí PATH, abyste ji mohli spustit odkudkoli:
echo 'PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc
Pokud používáte zsh
, změňte .bashrc
na .zshrc
.
Až budete hotovi, použijte zdrojový příkaz source ~/.bashrc
nebo znovu otevřete terminál (odhlaste se a znovu se přihlaste, pokud se jedná o server).
Pomocí následujícího příkazu potvrďte, že je docker-compose nainstalován:
[email protected]:~$ docker-compose --version
docker-compose version 1.26.2, build unknown
Gratulujeme! Nyní máte na svém serveru CentOS 8 nainstalován docker-compose.
Chcete to vyzkoušet? Postupujte podle tohoto jednoduchého návodu a naučte se používat Docker Compose.
Nasazení ukázkového serveru nginx pomocí docker-compose
Nginx je jedním z nejpopulárnějších webových serverů, lze jej snadno nasadit pomocí dockeru.
Porovnejme způsob psaní a způsob neskládání
Nasazení Nginx bez Docker Compose
Můžete použít run
příkaz pro snadné nasazení serveru nginx, jako je tento:
docker run --name server --network net -v html:/usr/share/nginx/html -v $PWD/custom-config.conf:/etc/nginx/nginx.conf -p 80:80 --restart on-failure -d nginx:latest
Zde jste nasadili server nginx s názvem kontejneru „server“, pomocí externí sítě „net“, připojili jste svazek s názvem „html“, pomocí vlastního konfiguračního souboru a naslouchali na portu 80 na hostiteli, který automaticky restartovat při selhání.
Pojďme si projít problémy zde:
Sítě a svazky budete muset vytvořit předem
Docker automaticky nevytvoří síť a svazek. Budete je muset vytvořit předem.
Příliš mnoho možností na psaní pokaždé
Možností psaní je příliš mnoho. Pokud se jedná o složitější kontejner, jako je databázový kontejner nebo kontejner reverzního proxy nebo kontejner nextcloud, tyto možnosti se jen rozrostou.
Prostředí vývoje
Co když testujete své sestavení a nechcete po zastavení kontejneru zachovat objem? Poté budete muset svazek a síť ručně odebrat.
Nasazení Nginx pomocí Docker Compose
Nejprve budete muset vytvořit soubor pro psaní.
Vytvořte adresář s názvem "nginx-compose" a do něj cd:
mkdir nginx-compose && cd nginx-compose
Vytvořte soubor s názvem „docker-compose.yml“ a přidejte následující řádky
version: "3.3"
services:
server:
image : "nginx:latest"
container_name: "server"
volumes:
- "html:/usr/share/nginx/html"
- "./custom-config.conf:/etc/nginx/nginx.conf"
networks:
- "net"
ports:
- "80:80"
restart: "on-failure"
volumes:
html:
networks:
net:
Tento soubor pro psaní popisuje službu s názvem server
, to nasadí server nginx s přesně stejnými konfiguracemi, jaké jsme udělali my bez komponování. Nasaďte jej pomocí:
docker-compose up -d
docker-compose vyhledá v aktuálním adresáři soubor s názvem „docker-compose.yml“, analyzuje jej a nasadí služby v něm definované.
Pojďme si nyní projít problémy metody non-compose s metodou compose:
- Není třeba vytvářet sítě a svazky předem, docker-compose to udělá za vás. Externí svazky můžete přidat nastavením external na true v každém svazku/síti.
- Jakmile napíšete soubor .yaml, již není potřeba zapisovat rozsáhlé příkazy. Tento soubor můžete zkopírovat na jakýkoli jiný server, který má nainstalovanou nejnovější verzi docker-compose, a poběží snadno podle očekávání.
- Můžete použít
docker-compose down -v
příkaz k zastavení a odstranění nejen kontejnerů, ale také všech sítí a svazků, které docker-compose vytvořil. To pomáhá při čištění ve vývojovém/testovacím prostředí.
Použití docker-compose oproti docker run
má mnoho dalších výhod , zejména ve výrobě, která je mimo rozsah dnešního článku.
Pokud chcete něco takového vidět, dejte mi vědět v sekci komentářů níže. Sledujte naši sérii dokovacích stanic, kde najdete další podobné průvodce.