Docker je otevřený nástroj pro správu platforem pro Linux Containers. Poskytuje vývojářům a systémovým administrátorům prostředky k sestavování a balení aplikací do lehkých kontejnerů. Docker se skládá z následujících součástí:
- Docker Engine – Přenosný, lehký běhový a balicí nástroj
- Docker Hub – Cloudová služba pro sdílení aplikací a automatizaci pracovních postupů
Docker se používá k vytváření kontejnerů aplikací založených na obrázcích. Kontejnery založené na obrázcích zabalí aplikaci s jednotlivými runtime zásobníky do jednoho kontejneru. Díky tomu je kontejner nezávislý na hostitelském operačním systému a verzi jádra. Díky tomu můžete stejnou aplikaci beze změny provozovat na noteboocích, virtuálních strojích datových center a jakémkoli cloudu. Tento kontejner můžete přenést na jiný počítač, na kterém běží Docker, a spustit aplikaci bez jakýchkoli problémů s kompatibilitou.
Vytvoření obrázku z kontejneru
Aktuální stav kontejneru můžete uložit jako nový obrázek pomocí „docker commit “příkaz. To je užitečné, pokud jste upravili kontejner a chcete změny uložit do nového obrázku pro pozdější použití.
Příklad na snímku vytvoří nový kontejner s názvem „geeklab“ z obrázku centos:7 a spustí v kontejneru příkaz bash shell.
# docker run -i -t --name geeklab centos:7 /bin/bash [root@873abc18f59d /]#
Z kontejneru se k instalaci balíčku httpd použije příkaz yum.
[root@873abc18f59d /]# yum install httpd
K zastavení běžícího kontejneru použijte příkaz exit.
[root@873abc18f59d /]# exit exit
Příkaz „docker commit“ uloží změny do nového obrazu. Použijte volbu -m k poskytnutí zprávy popisující změny. Použijte -a možnost poskytnout informace o autorovi. Zadejte ID kontejneru nebo název kontejneru, název obrázku a značku. Příklad:
# docker commit -m="CentOS 7 With httpd installed" -a "Geek Lab" geeklab centos7/httpd:v1 sha256:b3c42dd36e247cabcfaf134afb4765e9853ebfbe856c8d785f65cfafc9fd53cd
Výstup příkazu docker images nyní obsahuje nový obrázek.
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos7/httpd v1 b3c42dd36e24 20 seconds ago 334 MB
Vytvoření obrázku z Dockerfile
Pomocí příkazu docker build vytvořte nový obrázek z pokynů obsažených v souboru s názvem „Dockerfile “. Formát Dockerfile je:
# Comment INSTRUCTION arguments
Instrukce nerozlišuje velká a malá písmena, ale konvencí je psát velkými písmeny, aby se odlišila od argumentů. Docker spouští pokyny v Dockerfile v daném pořadí. Vytvoříte nový obrázek ze základního obrázku. První instrukce je FROM a určuje základní obrázek, který se má použít. Příklad:
FROM centos:7
Pomocí instrukce RUN zadejte příkazy, které se mají spustit v nové vrstvě nad aktuálním obrazem, a potvrďte výsledky. Příklad:
RUN yum –y install httpd
Instrukce ENTRYPOINT specifikuje příkaz, který kontejner vytvořený z obrazu spustí. Příklad:
ENTRYPOINT /usr/sbin/httpd –D FOREGROUND
Popis všech pokynů naleznete na manuálové stránce dockerfile. Následující URL také poskytuje popisy, použití a příklady všech dostupných pokynů pro Dockerfile:https://docs.docker.com/reference/builder/.
Uložte a načtěte obrázek nebo kontejner
Můžete vytvořit soubory tar obrázků a kontejnerů pro použití v systémech, které nemají přístup k Docker Hub. Použijte „uložení dokovací stanice ” pro uložení obrázků do souboru tar. Můžete buď uložit všechny obrázky v úložišti do souboru tar, nebo uložit konkrétní obrázek do souboru tar. Vytvořte soubor tar buď přesměrováním STDOUT do souboru tar, nebo použijte volbu -o k zadání názvu výstupního souboru tar.
Následující příklad přesměruje STDOUT k uložení všech obrázků v úložišti centos na centos-all.tar:
# docker save centos > centos-all.tar
Následující příklad uloží obrázek centos:latest do souboru centos-lates.tar.
# docker save -o=centos-latest.tar centos:latest
Pomocí příkazu docker load načtěte obrázek ze souboru tar do místního úložiště Docker. Následující příklad načte obrázky ze souboru centos-all.tar:
# docker load --input centos-all.tarPrůvodce pro začátečníky světem Docker