Docker je sada produktů Platforms as a Service (PaaS), které využívají virtualizaci na úrovni operačního systému k poskytování softwaru v balíčcích nazývaných kontejnery. Kontejnery jsou od sebe izolované a sdružují svůj vlastní software, knihovny a konfigurační soubory; mohou spolu komunikovat prostřednictvím dobře definovaných kanálů. Všechny kontejnery jsou provozovány jedním jádrem operačního systému, a proto využívají méně prostředků než virtuální stroj.
Obsah
- Co je Docker?
- Proč je Docker populární?
- Co je to Dockerfile?
- Co je architektura Docker a jak Docker funguje?
- Co je to Docker Image?
- Co je Docker Container?
- Co je Docker Hub?
- Co je to Docker Compose?
- Jak stáhnout Docker Desktop?
- Příkazy Docker
- Docker Engine
- Proč používat Docker?
- Co je Docker For AWS?
- Rozdíl mezi kontejnery Docker a virtuálními stroji
- Nainstalujte Docker na Ubuntu
- Ukázkový příklad: Kontejnerování aplikace pomocí Dockeru
- Ukázkový příklad odeslání obrázku do Docker Hub
- Načtěte a spusťte obrázek z Docker Hub
- Výhody Dockeru
- Alternativy Dockeru
- Zabezpečení dockeru
Co je Docker?
Přístavní dělník je open-source kontejnerizace platforma, pomocí které můžete zabalit vaši aplikaci a všechny její závislosti do standardizované jednotky zvané kontejner. Kontejnery jsou lehké, díky čemuž jsou přenosné a jsou izolovány od základní infrastruktury a od sebe navzájem. Můžete spustit obrázek dockeru jako dokovací kontejner v libovolném počítači, kde je nainstalován docker bez závislosti na operační systém.
Proč je Docker populární?
Docker si získal svou popularitu díky svému vlivu na vývoj a nasazení softwaru. Níže jsou uvedeny některé z hlavních důvodů, proč se docker stal populárním:
- Přenosnost: Docker usnadňuje vývojářům balení jejich aplikací se všemi závislostmi do jediného lehkého kontejneru. Umožňuje zajistit konzistentní výkon v různých počítačových prostředích.
- Reprodukovatelnost: Prostřednictvím zapouzdření aplikací s jejich závislostmi v kontejneru zajišťuje, že nastavení softwaru zůstanou konzistentní ve vývojovém, testovacím a produkčním prostředí.
- Účinnost: Docker prostřednictvím své architektury založené na kontejnerech optimalizuje využití zdrojů. Umožňuje vývojářům spouštět více izolovaných aplikací na jediném hostitelském systému.
- Škálovatelnost: Funkce škálovatelnosti Dockeru usnadnily vývojářům práci s jejich aplikacemi v době zvýšení zátěže.
Co je to Dockerfile?
The Dockerfile používá DSL (Domain Specific Language) a obsahuje pokyny pro generování obrazu Docker. Dockerfile bude definovat procesy pro rychlé vytvoření obrázku. Při vytváření aplikace byste měli vytvořit soubor Dockerfile v pořadí od Démon Docker spustí všechny pokyny shora dolů.
(Démon Docker, často označovaný jednoduše jako Docker, je služba na pozadí, která spravuje kontejnery Docker v systému.)
- Jedná se o textový dokument, který obsahuje potřebné příkazy, které při spuštění pomohou sestavit Docker Image.
- Docker image je vytvořen pomocí Dockerfile.

Chcete-li se dozvědět více o Dockerfile, navštivte Docker – koncept Dockerfile .
řetězec do int
Co je architektura Docker a jak Docker funguje?
Docker využívá architekturu klient-server. Klient Docker mluví s démonem dockeru, který pomáhá při sestavování, spouštění a distribuci kontejnerů dockeru. Klient Docker běží s démonem na stejném systému nebo můžeme klienta Docker propojit s démonem Docker vzdáleně. S pomocí REST API přes soket UNIX nebo síť spolu docker klient a démon komunikují. Chcete-li se dozvědět více o práci dockeru, podívejte se na Architektura Docker .

Co je to Docker Image?
Je to soubor složený z více vrstev, který se používá ke spouštění kódu v kontejneru Docker. Jedná se o sadu instrukcí používaných k vytváření kontejnerů dockerů. Docker Image je spustitelný balík softwaru, který obsahuje vše potřebné ke spuštění aplikace. Tento obrázek informuje o tom, jak by měl kontejner vytvářet instanci, a určuje, které softwarové komponenty poběží a jak. Docker Container je virtuální prostředí, které sdružuje kód aplikace se všemi závislostmi potřebnými ke spuštění aplikace. Aplikace běží rychle a spolehlivě z jednoho výpočetního prostředí do druhého.
Co je Docker Container?
Kontejner Docker je runtime instance obrázku. Umožňuje vývojářům zabalit aplikace se všemi potřebnými částmi, jako jsou knihovny a další závislosti. Docker Containers jsou runtime instance obrazů Dockeru. Kontejnery obsahují celou sadu potřebnou pro aplikaci, takže aplikaci lze spustit izolovaným způsobem. Například: Předpokládejme, že existuje obraz Ubuntu OS s NGINX SERVER, když je tento obraz spuštěn příkazem docker run, pak bude vytvořen kontejner a NGINX SERVER bude spuštěn na Ubuntu OS.
Co je Docker Hub?
Docker Hub je služba úložiště a je to cloudová služba, kde lidé vkládají své obrázky kontejnerů Docker a také vytahují obrázky kontejnerů Docker z Docker Hub kdykoli a kdekoli přes internet. Obecně to usnadňuje vyhledání a opětovné použití obrázků. Poskytuje funkce, jako je možné vložit své obrázky jako soukromý nebo veřejný registr, kde můžete ukládat a sdílet obrázky Docker.
Docker Hub využívá hlavně tým DevOps. Jedná se o open-source nástroj a je volně dostupný pro všechny operační systémy. Je to jako úložiště, kde ukládáme obrázky a vytahujeme je, když je to potřeba. Když chce někdo poslat/vytáhnout obrázky z Docker Hubu, musí mít základní znalosti Dockeru. Pojďme diskutovat o požadavcích nástroje Docker.
Co je to Docker Compose?
Docker Compose spustí multikontejnerovou aplikaci založenou na YAML. Soubor YAML obsahuje všechny konfigurace potřebné k nasazení kontejnerů Docker Compose , který je integrován s Docker Swarm a poskytuje pokyny pro stavbu a rozmístění kontejnerů. S Docker Compose je každý kontejner vytvořen tak, aby běžel na jednom hostiteli.
Jak stáhnout Docker Desktop?
Docker Desktop poskytuje GUI pro práci na dockerových kontejnerech, dockerových obrazech a dockerových sítích. Docker desktop poskytuje samostatné prostředí, které obsahuje Docker Engine, Docker CLI, Docker Compose, Kubernetes, a další nástroje, které jsou potřebné k sestavení, odeslání a spuštění aplikací ve formě kontejnerů, díky čemuž je uživatelsky přívětivější. Chcete-li se dozvědět více o tom, jak nainstalovat plochu dockeru, viz Ukázkový obrázek Docker Desktop.
Příkazy Docker
Díky zavedení základních příkazů dockeru se docker stal výkonným softwarem pro zefektivnění procesu správy kontejnerů. Pomáhá zajistit bezproblémový vývoj a nasazení pracovních postupů. Níže jsou uvedeny některé běžně používané příkazy dockeru:
- Docker Run: Používá se pro spouštění kontejnerů z obrázků, se specifikováním možností běhu a příkazů.
- Docker Pull: Načítá obrazy kontejnerů z registru kontejnerů, jako je Docker Hub, na místní počítač.
- Docker ps : Pomáhá při zobrazování běžících kontejnerů spolu s jejich důležitými informacemi, jako je ID kontejneru, použitý obrázek a stav.
- Docker Stop : Pomáhá při zastavování běžících kontejnerů a ladně ukončuje procesy v nich.
- Start dockeru: Pomáhá při restartování zastavených kontejnerů a obnovení jejich provozu z předchozího stavu.
- Přihlášení k dockeru: Pomáhá přihlásit se do registru dockerů a umožnit tak přístup k soukromým úložištím.
Chcete-li se dozvědět více o příkazech dockeru, viz Docker – Instrukční příkazy .
Docker Engine
Software, který je hostitelem kontejnerů, se jmenuje Docker Engine. Docker Engine je aplikace založená na klient-server. Docker engine má 3 hlavní součásti:
- Server: Zodpovídá za vytváření a správu obrazů, kontejnerů, sítí a svazků Dockeru na Dockeru. Označuje se jako proces démona.
- REST API : Specifikuje, jak mohou aplikace komunikovat se serverem, a instruuje jej, co má dělat.
- Klient: Klient je rozhraní příkazového řádku (CLI) dockeru, které nám umožňuje komunikovat s Dockerem pomocí příkazů dockeru.
Proč používat Docker?
Docker lze použít k zabalení aplikace a jejích závislostí, díky čemuž je snadné a snadné odesílat kód rychleji a spolehlivěji. Docker velmi zjednodušuje spouštění aplikace v produkčním prostředí kontejner dockeru může být nezávislý na platformě, pokud je v počítači nainstalován docker engine.
- Účinnost zdrojů : Docker pomáhá maximalizovat využití zdrojů tím, že spouští více kontejnerů na jednom hostiteli. Pomáhá snižovat náklady na infrastrukturu a zvyšuje efektivitu.
- Kontrola verzí: Zjednodušuje verzování aplikací a jejich závislostí, zajišťuje konzistenci a usnadňuje spolupráci napříč týmy.
- Agility mikroslužeb: Umožňuje přijetí architektury mikroslužeb, podporuje škálovatelnost, flexibilitu a agilní vývoj aplikací pro izolaci chyb.
Co je Docker For AWS?
Docker je nejvýkonnější nástroj pro spouštění aplikace ve formě kontejnerů. Docker kontejnery jsou lehké a lze je spustit na jakémkoli operačním systému.
AWS poskytuje službu Amazon Elastic Container Service ( Amazon ECS ) je plně spravovaná kontejnerová služba, pomocí které můžete nasazovat, škálovat a spravovat kontejnery dockerů. Amazon ECS je nejspolehlivější platforma podle výkonu a také ji lze integrovat s další službou AWS, jako je vyrovnávání zátěže, zjišťování služeb a monitorování stavu kontejnerů. Chcete-li vědět více o Služba Amazon Elastic Container Service (Amazon ECS) .
Rozdíl mezi kontejnery Docker a virtuálními stroji
Níže jsou uvedeny rozdíly mezi kontejnery dockeru a virtuálními počítači:
Docker kontejnery | Virtuální stroje |
|---|---|
Kontejnery Docker obsahují binární soubory, knihovny a konfigurační soubory spolu se samotnou aplikací. | Virtuální stroje (VM) běží na hypervizorech, které umožňují běh více virtuálních strojů na jednom stroji spolu s vlastním operačním systémem. |
Neobsahují hostující OS pro každý kontejner a spoléhají na základní jádro OS, díky čemuž jsou kontejnery lehké. | Každý virtuální počítač má svou vlastní kopii operačního systému spolu s aplikací a potřebnými binárními soubory, což jej výrazně zvětšuje a vyžaduje více prostředků. |
Kontejnery sdílejí prostředky s jinými kontejnery ve stejném hostitelském OS a poskytují izolaci procesů na úrovni OS. | Poskytují izolaci procesů na úrovni hardwaru a jejich spouštění je pomalé. |
Nainstalujte Docker na Ubuntu
Následující kroky vás provedou instalací dockeru na ubuntu:
Krok 1: Odeberte starou verzi Dockeru
- Provedením následujícího příkazu odeberte starou verzi softwaru dockeru:
$ sudo apt-get remove docker docker-engine docker.io containerd runc>
Krok 2: Instalace Docker Engine
- Pro instalaci docker motoru se používá následující příkaz:
$ sudo apt-get update $ sudo apt-get install ca-certificates curl gnupg lsb-release $ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg $ echo 'deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.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 $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin $ sudo groupadd docker $ sudo usermod -aG docker $USER>
Krok 3: Ověřte instalaci Dockeru
- Zkontrolujte, zda je docker úspěšně nainstalován ve vašem systému, pokusem o spuštění kontejneru pomocí následujícího příkazu:
$ sudo docker run hello-world>
Další podrobnosti o instalaci dockeru na ubuntu naleznete zde – Článek
Ukázkový příklad: Kontejnerování aplikace pomocí Dockeru
Následující kroky vás provedou kontejnerizací aplikace pomocí Dockeru:
Krok 1: Vytvořte aplikaci Dokcerfile a Python
- Vytvořte složku se 2 soubory (Dockerfile a soubor main.py).
Krok 2: Vytvořte kód Pythonu
- Upravte main.py pomocí níže uvedeného kódu, nebo můžete zkusit vyvinout svůj vlastní python kód.
#!/usr/bin/env python3 print('Docker and GFG rock!')> Krok 3: Vytvořte Dockerfile
- Upravte Dockerfile pomocí níže uvedených pokynů pro vývoj Dockerfile:
FROM python:latest COPY main.py / CMD [ 'python', './main.py' ]>
Krok 4: Vytvořte Docker Image
- Jakmile vytvoříte a upravíte soubor main.py a Dockerfile, vytvořte svůj obraz obsahující vaši aplikaci spuštěním následujícího příkazu:
$ sudo docker build -t python-test .>
- Možnost „-t“ umožňuje definovat název vašeho obrázku. „python-test“ je název, který jsme pro obrázek vybrali.
Krok 5: Spusťte Docker Container
- Po vytvoření obrázku je váš kód připraven ke spuštění.
$ sudo docker run python-test>
Chcete-li se dozvědět více o této kontejnerizaci vaší aplikace, přečtěte si toto – Článek
Ukázkový příklad odeslání obrázku do Docker Hub
Následující kroky vás provedou odesláním obrázku do Dockerhubu:
Krok 1: Vytvořte si účet na Docker Hub nebo použijte stávající, pokud jej již máte.
stažení javascriptu
Krok 2: Klikněte na tlačítko Vytvořit úložiště, zadejte název souboru a klikněte na Vytvořit.
Krok 3: Nyní označí náš obrázek a pošle jej do úložiště Docker Hub, které jsme právě vytvořili.
- Nyní spusťte níže uvedený příkaz pro zobrazení obrázků dockeru:
$ docker images>
- Výše uvedené nám poskytne tento výsledek
REPOSITORY TAG IMAGE_ID CREATED SIZE afrozchakure/python-test latest c7857f97ebbd 2 hours ago 933MB>
- ID obrázku se používá k označení obrázku. Syntaxe pro označení obrázku je:
docker tag /python-test:latest $ docker tag c7857f97ebbd afrozchakure/python-test:latest>
Krok 4: Odeslat obrázek do úložiště Docker Hub
$ docker push afrozchakure/python-test>
Chcete-li se dozvědět více o publikování obrázků na dockerhub, přečtěte si toto – Článek
Načtěte a spusťte obrázek z Docker Hub
1. Abychom odstranili všechny verze konkrétního obrázku z našeho místního systému, používáme pro něj ID obrázku.
$ docker rmi -f af939ee31fdc>
2. Nyní spusťte obrázek, načte obrázek z docker hubu, pokud na vašem místním počítači neexistuje.
$ docker run afrozchakure/python-test>
Výhody Dockeru
Níže jsou uvedeny některé z výhod Dockeru:
- Přenosnost: Docker zařízení s vytvářením lehkých přenosných kontejnerů, které nemohou být schopny na jakémkoli počítači bez ohledu na základní operační systémy.
- Izolace: Docker through container poskytuje vysokou úroveň izolace a umožňuje aplikacím běžet nezávisle na sobě a řeší problémy, které jeden kontejner nemá vliv na druhý.
- Reprodukovatelnost: Díky tomu mohou vývojáři Docker snadno zabalit své aplikace a jejich závislosti do znovu použitelných obrázků. Umožňuje konzistentní a opakovatelné sestavení napříč vývojovým, testovacím a produkčním prostředím.
- Integrace DevOps : Podporuje spolupráci a automatizaci v průběhu životního cyklu vývoje softwaru při zvládání rostoucího pracovního zatížení.
Alternativy Dockeru
Následují alternativy Dockeru:
- Podman : Nabízí kontejnerový engine kompatibilní s Dockerem se zaměřením na zabezpečení a kompatibilitu, ideální pro prostředí, kde Docker není preferován nebo není dostupný.
- rkt: Lehký kontejnerový běhový modul vyvinutý CoreOS, navržený pro jednoduchost, bezpečnost a složitelnost, který nabízí alternativu k běhovému prostředí kontejneru Docker.
- LXC (Linuxové kontejnery): Poskytuje virtualizaci na úrovni operačního systému pro provozování více izolovaných linuxových systémů (kontejnerů) na jednom hostiteli a nabízí odlehčenou alternativu k Dockeru pro určité případy použití.
- v kontejnerech: Odvětvové standardní jádro kontejnerového běhového prostředí vyvinuté společností Docker, Inc., nabízející minimální a stabilní platformu pro vytváření kontejnerizovaných aplikací, často používané jako alternativa nižší úrovně k Dockeru pro pokročilejší systémy orchestrace kontejnerů, jako je Kubernetes.
Zabezpečení dockeru
Níže jsou uvedeny některé poznatky o zabezpečení dockeru:
- Izolace : Docker kontejnery poskytují silnou izolaci zajišťující běh aplikací a zpracování.
- Neměnná infrastruktura : Podporuje používání neměnné infrastruktury, kde jsou kontejnery sestavovány z neměnných obrazů, které jsou řízeny verzí.
- Omezení zdrojů: Umožňuje vám definovat omezení prostředků pro kontejnery, jako jsou limity CPU a paměti.
- Bezpečnostní skenování: Poskytuje vestavěné nástroje pro bezpečnostní skenování, které vám umožňují před nasazením skenovat obrázky kontejnerů na známé zranitelnosti a malware.
Závěr
Takže jste se dozvěděli o základech Dockeru, rozdílu mezi virtuálními stroji a kontejnery Docker spolu s běžnou terminologií v Dockeru. Také jsme prošli instalací Dockeru na naše systémy. Vytvořili jsme aplikaci pomocí Dockeru a poslali náš obrázek do Docker Hub. Nakonec jsme se dozvěděli, jak můžeme odstranit konkrétní obrázek z našeho místního systému a později stáhnout obrázek z Docker Hub, pokud lokálně neexistuje.
Docker – Nejčastější dotazy
Co je to ve zkratce Docker Hub?
Docker Hub je veřejný registr, kde mohou uživatelé/vývojáři ukládat a sdílet obrazy systému, které vytvořili, a umožnit jim snadný přístup k obrazům a jejich opětovné použití pro další vývojáře softwaru.
Co je potřeba k používání Docker Hub?
Chcete-li používat Docker Hub, uživatel by měl mít účet na platformě Docker Hub. Pokud nemáte účet na Docker Hub, můžete si jej vytvořit zazpíváním. Jakmile budete mít účet na Dockeru, můžete provádět operace jako push a pull obrázky do az Docker Hub.
Co jsou protokoly Docker?
Démon Docker a kontejnery Docker budou generovat protokoly dockeru ve formě textových zpráv, které vám pomohou dále řešit problémy, sledovat výkon vašich aplikací a shromažďovat informace o stavu vašeho prostředí Docker.
Co je to Docker Build?
Docker build je příkaz, který se používá k vytvoření obrazu dockeru pomocí souboru Dockerfile.
Co je Docker Ubuntu?
Docker Ubuntu je termín používaný pro využití služby Docker s operačními systémy založenými na Ubuntu. Spuštění Dockeru se nejlépe hodí pro populární linuxovou distribuci Ubuntu.