Docker vám poskytuje vše, co potřebujete k sestavení a spuštění kontejnerů na vašem systému Linux. Kontejnery jsou podobné lehkým virtuálním strojům. Umožňují vám vytvářet obrazy přenosných aplikací, které běží pomocí jádra operačního systému vašeho hostitele.
Docker můžete používat na platformách Debian, Fedora, CentOS a Raspbian. Deriváty těchto distribucí budou také fungovat. Docker poskytuje sestavení x86/x64 a ARM pro většinu podporovaných platforem. Používáme systém Debian s apt
správce balíčků pro tuto příručku. Pokyny specifické pro jiné distribuce lze nalézt v dokumentaci Docker.
Docker Compose vám umožňuje vytvářet a provozovat stohy více kontejnerů. Vytvoříte soubor YAML, který nakonfiguruje kontejnery vaší aplikace. Poté můžete pomocí jediného příkazu spustit všechny kontejnery a propojit je dohromady. Compose vám pomůže rozdělit komponenty vašeho zásobníku do jednotlivých kontejnerových služeb.
Compose je distribuován nezávisle na Dockeru. Před přidáním Compose nainstalujte Docker – jinak nebude Compose fungovat.
SOUVISEJÍCÍ: Jak používat Docker ke kontejnerizaci PHP a Apache
Instalovat Docker
K instalaci nejnovější verze Dockeru můžete použít správce balíčků operačního systému. Budete muset přidat úložiště Dockeru, aktualizovat seznamy balíčků a poté nainstalovat Docker.
Debian/Ubuntu
Začněte přidáním závislostí potřebných pro proces instalace:
sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
Dále přidejte klíč GPG úložiště Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Přidejte úložiště do svých zdrojů a aktualizujte seznamy balíčků:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update
Nyní můžete nainstalovat Docker:
sudo apt-get install docker-ce docker-ce-cli containerd.io
Fedora
Přidejte úložiště balíčků Docker:
sudo dnf -y install dnf-plugins-core sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
Nainstalujte Docker:
sudo dnf install docker-ce docker-ce-cli containerd.io
CentOS
Přidejte úložiště balíčků Docker:
sudo yum -y install yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
Nainstalujte Docker:
sudo yum install docker-ce docker-ce-cli containerd.io
Používání Dockeru bez sudo
Démon Docker běží jako root
. Příkazům Dockeru musíte obvykle předponu sudo
. To může být únavné, pokud Docker často používáte. Přidáváte se do docker
skupina vám umožní používat Docker bez sudo
.
sudo usermod -aG docker $USER
Jakmile jste ve skupině, odhlaste se a znovu se přihlaste. Případně spusťte newgrp docker
příkaz k okamžitému přihlášení do aktualizované skupiny. Nyní byste měli být schopni vypustit sudo
z příkazů Docker.
Testování instalace dockeru
Nyní je Docker nainstalován, je čas otestovat, že funguje! Můžete použít minimální hello-world
obrázek.
docker run hello-world:latest
Ve vašem terminálu by se mělo objevit několik řádků výstupu. Docker nejprve vyhledá hello-world:latest
obrázek na vašem počítači. Protože nebude existovat, bude obrázek stažen z úložiště Docker Hub.
Jakmile bude obrázek vytažen, bude z něj vytvořen nový kontejner. Kontejner je nakonfigurován tak, aby vydal základní zprávu „ahoj světe“ a poté odešel. Pokud vidíte text, vaše instalace Dockeru funguje!
Správa služby Docker
Zda Docker běží, můžete zkontrolovat kontrolou jeho služby pomocí systemctl
. Je třeba zvážit dvě součásti, docker
a containerd
. docker
je démon Docker Engine, kterému CLI posílá příkazy. containerd
je základní běhové prostředí, které skutečně spouští vaše kontejnery.
sudo systemctl status docker.service sudo systemctl status containerd.service
Démony můžete spravovat jako jakékoli jiné služby ve vašem systému. Použijte systemctl stop
pokud chcete dočasně zastavit Docker a uvolnit systémové prostředky používané vašimi kontejnery:
sudo systemctl stop docker.service
Službu můžete restartovat pomocí systemctl start
.
Přidání Docker-Compose
docker-compose
je samostatný binární soubor, který je nejlepší stáhnout přímo z vydání GitHubu projektu. Většina populárních linuxových distribucí zahrnuje Compose ve svých správcích balíčků, ale může být značně zastaralý.
Přejděte na stránku vydání Docker Compose a poznamenejte si číslo nejnovější verze. V době psaní článku to bylo 1.29.0
.
Nahraďte verzi, kterou vidíte, namísto 1.29.0
v příkazu níže. Tím se stáhne správný binární soubor pro váš systém a uloží se do /usr/local/bin
.
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Dále udělejte soubor jako spustitelný:
sudo chmod +x /usr/local/bin/docker-compose
Nyní budete moci používat docker-compose
příkaz ve vašem terminálu. Zkuste spustit docker-compose --version
zkontrolovat.
Vytvoření jednoduchého souboru Docker-Compose
Chcete-li použít docker-compose
musíte vytvořit docker-compose.yml
soubor. Popisuje kontejnery, které tvoří zásobník vaší aplikace. Můžete určit vazby portů, proměnné prostředí, sítě a svazky, které používají vaše kontejnery.
Kontejnery deklarované ve stejném docker-compose.yml
soubor se automaticky stane součástí stejného zásobníku. Jsou spolu propojeny do sítě Docker, takže spolu mohou komunikovat pomocí svého docker-compose.yml
názvy služeb jako názvy hostitelů.
Zde je jednoduchý docker-compose.yml
ke spuštění webového serveru PHP a databáze MySQL:
version: "3" services: app: image: php8.0-apache environment: - MYSQL_SERVER=mysql - MYSQL_USERNAME=root - MYSQL_PASSWORD=example ports: - ${PORT:-80}:80 restart: unless-stopped mysql: image: mysql:8.0 expose: - 3306 environment: - MYSQL_ROOT_PASSWORD volumes: - mysql:/var/lib/mysql restart: unless-stopped volumes: mysql:
Obě služby můžete spustit spuštěním docker-compose up -d
. Uvidíte, jak se oba obrázky stahují z Docker Hub. Poté budou kontejnery spuštěny. Obojí můžete zastavit pomocí docker-compose stop
. Použijte docker-compose down
k odstranění nádob.
Vzorový soubor YAML ukazuje několik funkcí Docker Compose. Kontejnery jsou definovány v části services
uzel, přičemž každý kontejner deklaruje svůj image
Docker . Proměnné prostředí shellu můžete předávat do kontejnerů (environments
) a nastavte vazby portů Docker (ports
). Proměnné prostředí lze interpolovat do řetězců pomocí ${VARIABLE:-DEFAULT}
syntax. Pokud proměnná není ve vašem prostředí nastavena, DEFAULT
místo toho se použije jako hodnota. Více o Docker Compose se můžete dozvědět v naší specializované příručce.
Přehled
Docker můžete snadno nainstalovat pomocí správců balíčků oblíbených distribucí Linuxu. Přidejte úložiště Docker a poté nainstalujte docker-ce
, docker-ce-cli
a containerd.io
. Tyto komponenty vám poskytnou vše, co potřebujete k sestavení a provozu vašich kontejnerů.
Jakmile budete připraveni, můžete napsat Dockerfile
a použijte docker build -t my-app:latest .
postavit to. Poté použijte docker run my-app:latest
ke spuštění kontejneru.
Docker-Compose je další abstraktní vrstva, která usnadňuje provozování „hromady“ více kontejnerů. S Compose nemusíte ručně spouštět více příkazů v sérii. Můžete napsat deklarativní soubor YAML a použít docker-compose up
spusťte všechny své kontejnery současně.
SOUVISEJÍCÍ: Co je Docker Compose a jak jej používáte?