Docker je kontejnerizační platforma, která vám umožňuje rychle vytvářet, testovat a nasazovat aplikace jako přenosné, soběstačné kontejnery, které lze spustit prakticky kdekoli.
Docker je de facto standardem pro technologii kontejnerů a je nezbytným nástrojem pro inženýry DevOps a jejich průběžnou integraci a doručovací potrubí.
V tomto tutoriálu vás provedeme procesem instalace Dockeru na počítač Debian 9 a prozkoumáme základní koncepty a příkazy Dockeru.
Předpoklady #
Než budete pokračovat v tomto tutoriálu, ujistěte se, že jste přihlášeni jako uživatel s právy sudo. Všechny příkazy v tomto tutoriálu by měly být spouštěny jako uživatel bez oprávnění root.
Instalovat Docker na Debian #
Následující kroky popisují, jak nainstalovat nejnovější stabilní verzi Dockeru z úložišť Dockeru.
-
Aktualizujte nainstalované balíčky na nejnovější verzi:
sudo apt update
sudo apt upgrade
-
Nainstalujte závislosti potřebné k přidání nového úložiště přes HTTPS:
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg2
-
Importujte klíč GPG úložiště pomocí následujícího
curl
příkaz:curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
Přidejte úložiště Docker APT do seznamu softwarových úložišť vašeho systému zadáním:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
$(lsb_release -cs)
vrátí název distribuce Debianu, v tomto případě vrátístretch
. -
Nyní, když je povoleno úložiště Docker, aktualizujte
apt
seznam balíčků a nainstalujte nejnovější verzi Docker CE (Community Edition) pomocí:sudo apt update
sudo apt install docker-ce
-
Po dokončení instalace se služba Docker automaticky spustí. Můžete to ověřit zadáním:
sudo systemctl status docker
● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2018-07-27 17:02:07 UTC; 1min 14s ago Docs: https://docs.docker.com Main PID: 16929 (dockerd) CGroup: /system.slice/docker.service
-
V době psaní tohoto článku je aktuální verze Dockeru dostupná pro Debian 9
18.06.0-ce
. Zkontrolujte verzi Docker pomocí:docker -v
Docker version 18.06.0-ce, build 0ffa825
Spuštění příkazu Docker bez sudo #
Ve výchozím nastavení může příkazy Dockeru spouštět pouze uživatel s oprávněními správce.
Pokud chcete spouštět příkazy Dockeru jako uživatel bez oprávnění root bez přidání sudo
budete muset svého uživatele přidat do skupiny dockerů, která se vytvoří během instalace balíčku Docker CE. Můžete to udělat zadáním:
sudo usermod -aG docker $USER
$USER
je proměnná prostředí, která obsahuje vaše uživatelské jméno.
Odhlaste se a přihlaste se znovu, aby se členství ve skupině obnovilo.
Chcete-li ověřit, že můžete spouštět příkazy dockeru bez přidání sudo
spusťte následující příkaz, který stáhne testovací obrázek, spustí jej v kontejneru, vytiskne zprávu „Hello from Docker“ a skončí:
docker container run hello-world
Výstup by měl vypadat takto:
Rozhraní příkazového řádku Dockeru #
Nyní, když máme nainstalovaný Docker, pojďme si projít základní syntaxi docker CLI:
docker [option] [subcommand] [arguments]
Chcete-li zobrazit všechny dostupné příkazy, spusťte docker
bez parametrů:
docker
Pokud potřebujete další pomoc s jakýmkoli [subcommand]
, můžete použít --help
přepněte, jak je znázorněno níže:
docker [subcommand] --help
Obrázky dockeru #
Obraz Docker se skládá z řady vrstev souborového systému, které představují instrukce v Dockerfilet obrázku, které tvoří spustitelnou softwarovou aplikaci. Obrázek je neměnný binární soubor obsahující aplikaci a všechny další závislosti, jako jsou knihovny, binární soubory a pokyny nezbytné pro spuštění aplikace.
Obraz Dockeru si můžete představit jako snímek kontejneru Docker.
Většina obrázků Dockeru je k dispozici na Docker Hub.
Docker Hub je cloudová registrační služba, která se kromě jiných funkcí používá k uchovávání obrazů Docker buď ve veřejném nebo soukromém úložišti.
Vyhledat obrázek Dockeru #
Chcete-li vyhledat obrázek z registru Docker Hub, použijte search
dílčí příkaz.
Chcete-li například vyhledat obraz Debianu, zadejte:
docker search debian
Výstup by měl vypadat takto:
Jak můžete vidět, výsledky vyhledávání vytisknou tabulku s pěti sloupci NAME
, DESCRIPTION
, STARS
, OFFICIAL
a AUTOMATED
.
Oficiální image je image, kterou Docker vyvíjí ve spolupráci s upstream partnery.
Většina obrázků Docker na Docker Hub je označena čísly verzí. Pokud není zadán žádný tag, Docker načte nejnovější obrázek.
Stáhnout obrázek Dockeru #
Pokud si chceme stáhnout oficiální sestavení obrazu Debianu, můžeme to udělat pomocí image pull
dílčí příkaz:
docker image pull debian
V závislosti na rychlosti vašeho internetu může stahování trvat několik sekund nebo minut.
Protože jsme nespecifikovali značku, docker stáhne nejnovější obraz Debianu, který je 9.5. Pokud chcete stáhnout některé z předchozích verzí Debianu, řekněme Debian 8, musíte použít docker image pull debian:8
Jakmile je obrázek stažen, můžeme zobrazit seznam obrázků zadáním:
docker image ls
Výstup bude vypadat nějak takto:
Odebrat obrázek Dockeru #
Pokud z nějakého důvodu chcete smazat obrázek, můžete to udělat pomocí image rm [image_name]
dílčí příkaz:
docker image rm debian
Docker Containers #
Instance obrázku se nazývá kontejner. Kontejner představuje běhové prostředí pro jednu aplikaci, proces nebo službu.
Možná to není nejvhodnější srovnání, ale pokud jste programátor, můžete si představit obrázek Dockeru jako třídu a kontejner Docker jako instanci třídy.
Můžeme spustit, zastavit, odstranit a spravovat kontejner pomocí docker container
dílčí příkaz.
Spustit kontejner Docker #
Následující příkaz spustí kontejner Docker založený na obrazu Debianu. Pokud obrázek nemáte lokálně, bude nejprve stažen:
docker container run debian
Na první pohled se vám může zdát, že se vůbec nic nestalo. No, to není pravda. Kontejner Debianu se zastaví okamžitě po spuštění, protože nemá dlouhotrvající proces a my jsme nezadali žádný příkaz, takže kontejner naběhl, spustil prázdný příkaz a pak skončil.
Přepínač -it
nám umožňuje komunikovat s kontejnerem prostřednictvím příkazového řádku. Spuštění interaktivního kontejneru typu:
docker container run -it debian /bin/bash
root@ee86c8c81b3b:/#
Jak můžete vidět z výše uvedeného výstupu, jakmile je kontejner spuštěn, příkazový řádek se změní, což znamená, že nyní pracujete zevnitř kontejneru.
Vypsat kontejnery dockeru #
Chcete-li zobrazit spuštěné kontejnery, zadejte:
docker container ls
Pokud nemáte spuštěné žádné kontejnery, výstup bude prázdný.
Chcete-li zobrazit všechny kontejnery, předejte -a
přepínač:
docker container ls -a
Odebrat kontejnery Docker #
Chcete-li smazat jeden nebo více kontejnerů, zkopírujte ID kontejneru (nebo ID) a vložte je za container rm
dílčí příkaz:
docker container rm c55680af670c