Docker je sada otevřených platforem, která poskytuje virtualizaci na úrovni operačního systému pro vývoj, odesílání a spouštění aplikací. V Dockeru jsou aplikace dodávány jako balíčky standardizovaných jednotek nazývaných kontejnery. Každý kontejner je od sebe izolován, včetně knihoven a konfiguračních souborů, ale každý z nich může komunikovat prostřednictvím dobře definovaných síťových kanálů.
Docker se prozatím stal standardem pro vývoj softwaru a DevOps. Používají ho miliony vývojářů k vytváření, sdílení a spouštění libovolných aplikací každý den v práci. Používá se v životním cyklu vývoje aplikací, od samotného vývoje, testování a výroby. S Dockerem se aplikace stává flexibilnější a přenosnější. Aplikace lze snadno spouštět kdekoli v různých operačních systémech, ale samotná aplikace zůstává stejná, od knihoven po konfigurační soubory.
V tomto tutoriálu se naučíte, jak nainstalovat Docker na Debian 11 Bullseye. Také se naučíte základní použití Dockeru pro spouštění kontejnerů a správu obrázků.
Předpoklady
- Server Debian 11. Ujistěte se, že jsou všechny balíčky aktualizovány na nejnovější verzi.
- Uživatel root nebo uživatel s oprávněními root. Tento uživatel bude použit pro instalaci nových balíčků a úpravu systémových konfigurací.
Instalační závislosti
Nejprve nainstalujete některé základní závislosti balíčků na váš systém Debian.
1. Pro instalaci nových závislostí balíčků spusťte níže uvedený příkaz apt.
apt install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
Zadejte „y “ a stiskněte „Enter ' pro instalaci všech těchto balíčků.
Přidání úložiště Docker
Pro tuto příručku budete instalovat Docker z oficiálního úložiště Docker. Takže do svého systému Debian přidáte nové úložiště Docker.
1. Provedením následujícího příkazu přidejte klíč GPG pro Docker.
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
2. Poté přidejte úložiště Docker pro systém Debian 11 pomocí příkazu níže.
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
3. Nyní spusťte 'apt update ' pro aktualizaci/obnovení všech dostupných úložišť.
apt update
Nyní jste připraveni nainstalovat Docker na Debian 11 Bullseye.
Instalace Dockeru na Debian 11
1. Pokud má váš systém již dříve nainstalovaný Docker z úložiště Debianu, musíte jej odebrat pomocí příkazu níže.
sudo apt remove docker docker-engine docker.io containerd runc
2. Poté můžete Docker znovu nainstalovat pomocí příkazu apt níže.
apt install docker-ce docker-ce-cli containerd.io
Zadejte „y “ a stiskněte „Enter ' pro potvrzení instalace.
3. Pokud je instalace dokončena, ověřte instalaci provedením následujícího příkazu.
Zkontrolujte, zda je služba povolena nebo ne.
systemctl is-enabled docker
systemctl is-enabled containerd
Zkontrolujte stav služby Docker a Containerd.
systemctl status docker containerd
Níže je podobný výstup, který získáte.
Jak je vidět, služby Docker a Containerd jsou aktivní (běžící) a obě služby jsou povoleny a spustí se automaticky při startu systému.
Povolit uživatelům bez oprávnění root používat Docker
Ve výchozím nastavení Docker povoluje pouze uživatele 'root ' provozovat kontejnery. A aby uživatel bez oprávnění root mohl spouštět kontejnery, musíte svého uživatele bez oprávnění root přidat do skupiny 'docker ', který se automaticky vytvoří během instalace Dockeru.
1. V tomto příkladu budete používat uživatele 'johndoe ' ke spuštění kontejneru Docker.
Vytvořte nového uživatele 'johndoe' na vašem systému Debian pomocí následujícího příkazu.
useradd -m -s /bin/bash johndoe
2. Poté spusťte následující příkaz pro přidání uživatele 'johndoe ' do skupiny 'ukotvitelný panel '.
usermod -aG docker johndoe
3. Nyní se přihlaste jako uživatel 'johndoe ' pomocí příkazu níže a ověřte konfiguraci.
su - johndoe
Spusťte následující příkaz docker pro ověření vaší instalace.
docker run hello-world
A uvidíte 'Hello Docker ' zpráva níže.
Níže je jednoduché vysvětlení příkazu docker, který spustíte nahoře.
- Docker se pokusí najít název obrázku „hello-world“. Pokud je obrázek dostupný lokálně, docker spustí kontejner, pokud obrázek není dostupný lokálně, Docker najde a stáhne obrázek „hello-world“ na Docker-hub (výchozí úložiště obrázků dockeru).
- Pokud je stažen obraz dockeru, docker spustí kontejner. A kontejner provádí příkazy a zobrazuje vám zprávu 'Hello Docker'.
4. Nyní zkontrolujte kontejner docker pomocí příkazu docker níže.
Kontrola kontejneru se stavem 'běží '.
docker ps
Kontrola všech kontejnerů – zobrazí vám všechny kontejnery, aktuálně běžící a zastavené kontejnery.
docker ps -a
Níže je podobný výstup jako níže.
Jak můžete vidět, nový název kontejneru 'bold_bartix ' je vytvořen se základním obrázkem 'hello-world “ a aktuální stav kontejneru je „Exited “ nebo zastavena. Název kontejneru 'bold_bartix' na snímku obrazovky náhodně vybral Docker, ale můžete zadat název svého kontejneru.
Základní použití Docker
V této fázi se naučíte velmi základní použití Dockeru pro správu obrázků a kontejnerů.
1. Nejprve si stáhněte obrazy Dockeru do místního počítače pomocí následujícího příkazu.
docker pull nginx:alpine
Příkaz stáhne název obrázku Docker 'nginx “ a štítkem „alpine ' do vašeho systému.
Výraz „tagy “ je jako verze samotného obrazu. 'nginx:alpine ' znamená 'nginx ' obrázek se štítkem 'alpine “, což znamená založeno na operačním systému Alpine Linux. Vždy zkontrolujte všechny dostupné značky obrázků Docker v oficiálním úložišti Docker-Hub.
Níže je uveden příklad všech dostupných značek pro obrázek Dockeru 'nginx '.
Chcete-li zkontrolovat všechny dostupné obrazy dockeru v místním systému, spusťte následující příkaz docker.
docker images
Uvidíte podobný výstup jako níže.
Jak je vidět, máte dva obrázky Docker, nginx:alpine a ahoj světe .
2. Dále spusťte následující příkaz pro spuštění kontejneru.
docker run -it --rm -d -p 8080:80 --name web nginx:alpine
Nyní získáte náhodný řetězec a číslo nového kontejneru.
Možnosti, které musíte znát:
- -i nebo --interactive - ponechá kontejner STDIN otevřený, i když není připojen.
- -t nebo --tty – přidělí pseudoterminál, který propojí váš terminál s STDIN a STDOUT kontejneru.
- --rm - automaticky vyjměte nádobu, když nádobu opustíte nebo zastavíte.
- -d - spuštění kontejneru na pozadí, po spuštění kontejner odpojit.
- -p 8080:80 - zmapujte port mezi kontejnerem a hostitelským systémem. Port '80 “ na kontejneru je namapován na hostitelský systém port '8080 '.
- --name web – zadejte název nového kontejneru jako „web '.
- nginx:alpine - obrázek Dockeru, který používáme, je 'nginx:alpine '.
Nyní zkontrolujte běžící kontejner pomocí příkazu níže.
docker ps
Uvidíte podobný výsledek jako níže.
Chcete-li ověřit svůj kontejner Nginx, otevřete webový prohlížeč a zadejte IP adresu svého serveru s portem '8080 '.
http://192.168.1.10:8080/
A uvidíte indexovou stránku Nginx z kontejneru 'web ' jak je uvedeno níže.
3. Dále můžete zkontrolovat protokol kontejneru provedením následujícího příkazu docker.
docker logs web
A uvidíte všechny protokoly vašeho kontejneru, od začátku do konce.
Chcete-li omezit výstup protokolu, můžete použít '--tail n ' níže.
docker logs --tail 10 web
A uvidíte posledních 10 řádků protokolů kontejneru.
4. Nyní můžete kontejner Docker zastavit pomocí příkazu Docker níže.
docker stop web
Poté ověřte spuštěný kontejner pomocí následujícího příkazu.
docker ps
docker ps -a
Uvidíte následující výstup, jak je uvedeno níže.
'Web ' kontejner se zastaví a automaticky se odstraní. Je to proto, že používáte možnost '--rm ' při spuštění kontejneru.
5. Dále se naučíte spouštět kontejner s vlastním svazkem. Adresář na hostitelském počítači bude použit jako svazek pro kontejner Docker.
Vytvořte nová 'data ' adresář a vlastní 'index.html ' pomocí následujícího příkazu.
mkdir -p ~/data/
nano ~/data/index.html
Zkopírujte a vložte vlastní 'index.html ' skript, jak je uvedeno níže.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Welcome to Docker Nginx</title>
</head>
<body>
<h2>Hello from Nginx container</h2>
</body>
</html>
Uložte konfiguraci stisknutím 'Ctrl+x ', zadejte 'y “ a poté stiskněte „Enter '.
Dále vytvořte nový kontejner pomocí příkazu docker níže.
docker run -it --rm -d -p 8080:80 --name web -v ~/data:/usr/share/nginx/html nginx:alpine
Nyní získáte náhodné číslo a řetězec kontejneru.
Možnost '-v ~/data:/usr/share/nginx/html ' připojí '~/data ' na místním počítači do kontejneru na '/usr/share/nginx/html ' adresář.
Nyní ověřte kontejner Docker pomocí následujícího příkazu.
docker ps
A uvidíte podobný výstup jako níže.
Poté znovu otevřete webový prohlížeč a zadejte IP adresu serveru s portem '8080 ' jak je uvedeno níže.
http://192.168.1.10:8080/
A nahoře získáte vlastní 'index.html', který jste právě vytvořili, což znamená '~/data ' adresář je připojen ke kontejneru '/usr/share/nginx/html ' adresář.
6. Kromě toho se můžete přihlásit do běžícího aktuálního běžícího kontejneru 'web ' provedením příkazu docker níže.
Nejprve zkontrolujte kontejner 'web ' běží.
docker ps
Nyní připojte ke kontejneru 'web' pomocí příkazu níže.
docker exec -it web /bin/sh
Uvnitř kontejneru zkontrolujte název hostitele kontejneru pomocí následujícího příkazu.
hostname
Zkontrolujte IP adresu kontejneru pomocí 'ip ' níže.
ip a
Zkontrolujte směrovací tabulku kontejneru pomocí následujícího příkazu.
route -n
Níže je podobný výstup, který získáte.
Chcete-li vyčistit své aktuální prostředí, zastavte 'web ' pomocí následujícího příkazu.
docker stop web
Můžete také odstranit všechny kontejnery se stavem „exited ' pomocí příkazu níže.
docker rm $(docker ps --filter "status=exited" -q)
Závěr
gratuluji! Úspěšně jste nainstalovali Docker na Debian 11 Bullseye. Také jste se naučili základní použití Dockeru pro stahování obrazu z Docker-Hub, spouštění kontejneru dockeru, kontrolu stavu kontejneru dockeru, protokoly a základní použití svazku Dockeru. V dalším kroku se můžete pokusit vytvořit vlastní bitovou kopii Dockeru pro vaši aplikaci a odeslat ji do úložiště Docker Hub.