Úvod
Docker je open-source software navržený pro usnadnění a zjednodušení vývoje aplikací. Jedná se o sadu produktů typu platform-as-a-service, které vytvářejí izolovaná virtualizovaná prostředí pro vytváření, nasazování a testování aplikací.
Přestože je ovládání softwaru relativně jednoduché, existují určité termíny specifické pro Docker, které mohou noví uživatelé považovat za matoucí. Dockerfiles, obrázky, kontejnery, svazky a další terminologie budou muset být zvládnuty a časem by se měly stát druhou přirozeností.
Je dobré pokusit se pochopit základní role těchto prvků. Urychlí to učení se, jak s nimi pracovat. Jedna z otázek, kterou si mnoho uživatelů klade, je:
W Jaký je rozdíl mezi obrázkem Dockeru a kontejnerem?
Tento článek vysvětluje, jak se tyto dva liší a jak spolu souvisí. Přečtěte si více a dozvíte se to.

Co je to obrázek Docker?
Obrázek dockeru je neměnný (nezměnitelný) soubor, který obsahuje zdrojový kód, knihovny, závislosti, nástroje a další soubory potřebné pro běh aplikace.
Kvůli jejich pouze pro čtení kvalitu, jsou tyto obrázky někdy označovány jako snímky. Představují aplikaci a její virtuální prostředí v určitém okamžiku. Tato konzistence je jednou ze skvělých vlastností Dockeru. Umožňuje vývojářům testovat a experimentovat software ve stabilních, jednotných podmínkách.
Protože obrázky jsou svým způsobem jen šablony , nemůžete je spustit ani spustit. Co můžete udělat, je použít tuto šablonu jako základ pro vytvoření kontejneru. Kontejner je v konečném důsledku jen běžící obrázek. Jakmile vytvoříte kontejner, přidá na neměnný obrázek zapisovatelnou vrstvu, což znamená, že jej nyní můžete upravit.
Obrazová báze, na které vytvoříte kontejner, existuje samostatně a nelze ji změnit. Když spustíte kontejnerizované prostředí, v podstatě vytvoříte kopii pro čtení i zápis tohoto souborového systému (obrazu dockeru) uvnitř kontejneru. Tím přidáte vrstvu kontejneru což umožňuje úpravy celé kopie obrázku.

Z jednoho základu obrázků můžete vytvořit neomezený počet obrázků Docker . Pokaždé, když změníte počáteční stav obrázku a uložíte stávající stav, vytvoříte novou šablonu s další vrstvou navrchu.
Obrázky dockeru se proto mohou skládat z řady vrstev , z nichž každý se liší, ale také pochází z předchozího. Obrazové vrstvy představují soubory pouze pro čtení, ke kterým se přidá kontejnerová vrstva, jakmile ji použijete ke spuštění virtuálního prostředí.
Co je to Docker Container?
Docker kontejner je virtualizované run-time prostředí, kde uživatelé mohou izolovat aplikace od základního systému. Tyto kontejnery jsou kompaktní, přenosné jednotky, ve kterých můžete rychle a snadno spustit aplikaci.
Cennou funkcí je standardizace výpočetního prostředí běžícího uvnitř kontejneru. Nejen, že zajišťuje, že vaše aplikace funguje za stejných okolností, ale také zjednodušuje sdílení s ostatními spoluhráči.
Jelikož jsou kontejnery autonomní, poskytují silnou izolaci a zajišťují, že nepřeruší ostatní běžící kontejnery, stejně jako server, který je podporuje. Docker tvrdí, že tyto jednotky „poskytují nejsilnější izolační schopnosti v oboru“. Nebudete se tedy muset starat o zabezpečení svého počítače při vývoji aplikace.
Na rozdíl od virtuálních strojů (VM), kde k virtualizaci dochází na úrovni hardwaru, se kontejnery virtualizují na vrstvě aplikace. Mohou využívat jeden stroj, sdílet jeho jádro a virtualizovat operační systém pro spouštění izolovaných procesů. Díky tomu jsou kontejnery extrémně lehké , což vám umožní zachovat cenné zdroje.

Docker Images vs Containers
Když diskutujeme o rozdílu mezi obrázky a kontejnery, není fér je porovnávat jako protichůdné entity. Oba prvky spolu úzce souvisejí a jsou součástí systému definované platformou Docker.
Pokud jste si přečetli předchozí dvě části, které definují obrázky dockerů a kontejnery dockerů, možná už chápete, jak tyto dva navazují vztah.
Obrázky mohou existovat bez kontejnerů, zatímco kontejner musí spustit obrázek, aby mohl existovat. Kontejnery jsou proto závislé na obrázcích a používají je k vytvoření běhového prostředí a spuštění aplikace.
Tyto dva koncepty existují jako základní součásti (nebo spíše fáze) v procesu spuštění kontejneru Docker. Mít spuštěný kontejner je poslední „fází“ tohoto procesu, což naznačuje, že závisí na předchozích krocích a komponentách. To je důvod, proč obrázky dockerů v podstatě řídí a tvarují kontejnery.
Z Dockerfile do obrázku do kontejneru
Vše začíná skriptem pokynů, které definují, jak vytvořit konkrétní obrázek Dockeru. Tento skript se nazývá Dockerfile. Soubor automaticky provede uvedené příkazy a vytvoří image Docker .
Příkaz pro vytvoření obrázku z Dockerfile je docker build
.
Obrázek se poté použije jako šablona (nebo základ), kterou může vývojář zkopírovat a použít ke spuštění aplikace. Aplikace potřebuje izolované prostředí, ve kterém běží – kontejner .
Toto prostředí není jen virtuální „prostor“. Zcela se spoléhá na obraz, který jej vytvořil. Zdrojový kód, soubory, závislosti a binární knihovny, které se všechny nacházejí v obrazu Dockeru, tvoří kontejner.
Chcete-li vytvořit vrstvu kontejneru z obrázku, použijte příkaz docker create
.
Nakonec po spuštění kontejneru z existujícího obrazu spustíte jeho službu a spustíte aplikaci.
