Pokud s kontejnery a Dockerem teprve začínáte a pracujete primárně na Windows, budete se těšit. V tomto článku se dozvíte, jak nastavit Docker v systému Windows 10 pomocí Docker Desktop pro Windows nebo jednoduše označovaného jako Docker Desktop v tomto článku.
Docker Desktop je Docker Engine a klient pro správu zabalené společně pro snadné použití ve Windows 10. V tomto článku si nainstalujete Docker Desktop, nasadíte svůj první kontejner a budete sdílet data mezi hostitelem a vašimi kontejnery.
Předpoklady pro Docker v systému Windows
Toto je návod, který ukazuje různé kroky v Docker Desktop pro Docker v systému Windows. Chcete-li pokračovat, ujistěte se, že máte splněno několik konkrétních požadavků.
- Připojení k internetu ke stažení více než 800 MB dat
- Windows 10 64bitový s verzí Pro, Enterprise nebo Education s vydáním 1703 nebo novějším. To je nezbytné ke spuštění Hyper-V ve Windows 10.
- CPU s kompatibilitou SLAT (vnořené stránkování). Všechny procesory AMD/Intel přibližně od roku 2008 jsou kompatibilní se SLAT
- Alespoň 4 GB RAM
- Hardwarová virtualizace systému BIOS je někdy označována jako Virtualizační technologie nebo VTx . Toto musí být povoleno a zobrazeno jako Povoleno na kartě Výkon ve Správci úloh, jak je uvedeno níže.

Stažení a instalace Docker Desktop
Nejprve si musíte stáhnout a nainstalovat Docker Desktop, abyste mohli spustit Docker na Windows. Docker Desktop je k dispozici ve dvou verzích; stabilní vydání a testovací vydání.
Stabilní verze je vydávána čtvrtletně a zajišťuje plně otestovanou aplikaci. V tomto článku budete používat stabilní verzi.
Upozornění:Po instalaci vás Docker Desktop vyzve k instalaci hypervizoru Hyper-V, pokud ještě není nainstalován. Hyper-V hypervisor tak zabrání hypervizorům v uživatelském režimu, jako je VirtualBox, VMWare atd., aby spouštěly hostované virtuální počítače. Podpora Hyper-V pro VirtualBox a VMWare je omezená, ale přichází.
Máte také možnost zdroje stahování prostřednictvím ručního stažení Docker Desktop přímo z Docker.com nebo prostřednictvím správce balíčků Windows, Chocolatey. Pojďme se stručně zabývat každou metodou.
Z Docker.com
Chcete-li stáhnout Docker Desktop přímo z docker.com, můžete přejít na stránku produktu, zaregistrovat si účet a stáhnout si jej odtud. Toto je preferováno, pokud máte v úmyslu používat Docker v produkci registrací účtu.
Pokud však Docker teprve zkoušíte poprvé, můžete si jej také stáhnout přímo, což je mnohem jednodušší.
Jakmile je soubor EXE stažen, spusťte spustitelný soubor a proklikejte se výzvami, abyste přijali všechna výchozí nastavení.
Na otázku, zda plánujete použít kontejnery Windows místo kontejnerů Linux , jak je uvedeno níže, nedělejte zaškrtněte políčko. V tomto článku budete používat kontejnery Linux.

Po dokončení instalace restartujte počítač.
Výběrem možnosti používat kontejnery Windows nebo kontejnery Linuxu sdělíte Dockeru, aby připojil obrázky k jádru Windows nebo linuxovému jádru. Toto nastavení můžete kdykoli po instalaci změnit kliknutím pravým tlačítkem na ikonu Docker na hlavním panelu a výběrem Přepnout na kontejnery Windows, jak je znázorněno níže.

Používání čokolády
Další možností, jak si stáhnout a nainstalovat Docker Desktop, je Chocolatey. Chocolatey za vás automatizuje mnoho úloh stahování/instalace. Chcete-li to provést, otevřete konzolu příkazového řádku (buď cmd nebo PowerShell) jako správce a stáhněte a nainstalujte program najednou spuštěním příkazu níže.
choco install docker-desktop
Po dokončení restartujte Windows 10.
Pokud byste někdy chtěli testovací verzi vyzkoušet, můžete si ji stáhnout a nainstalovat spuštěním
choco install docker-desktop --pre
.
Ověření instalace Docker Desktop
Po instalaci se Docker Desktop automaticky spustí jako služba poskytující Docker v systému Windows. Zobrazí se na hlavním panelu, když se po restartu přihlásíte do systému Windows. Ale jak vlastně víte, že to funguje?
Chcete-li ověřit, zda Docker Desktop funguje správně, otevřete konzolu příkazového řádku a spusťte docker
příkaz. Pokud instalace proběhla v pořádku, uvidíte odkaz na příkaz Docker.
Nakonec nechte Docker stáhnout a spustit ukázkový obrázek kontejneru s názvem hello-world spuštěním příkazu docker run hello-world
. Pokud je vše v pořádku, uvidíte výstup jako níže.

Spouštění příkazů v kontejnerech Docker
Docker Desktop je nainstalován a vy jste ověřili, že je vše v pořádku? Co teď? Chcete-li začít s Dockerem v systému Windows, jedním z běžných úkolů, které je třeba provést v kontejneru Docker, je spouštění příkazů. Prostřednictvím docker run
můžete odesílat příkazy prostřednictvím hostitele (vašeho počítače se systémem Windows 10) přímo do běžícího kontejneru.
Chcete-li spouštět příkazy v kontejneru pomocí docker run
, nejprve zadáte název obrázku a poté příkaz. Chcete-li začít, řekněte Dockeru, aby spustil příkaz hostname
uvnitř kontejneru zvaného alpine jak je vidět níže.
> docker run alpine hostname
b74ff46601af
Protože nemáte alpské Docker image nyní na vašem počítači, Docker ve Windows stáhne malý obrázek z Docker Hub, vyvolá kontejner z tohoto obrázku a odešle příkaz přímo do kontejneru a vše vypne jedním tahem.
Pokud chcete kontejner ponechat v provozu, můžete také použít -it
parametr. Tento parametr říká Dockeru, aby po provedení příkazu ponechal kontejner v „interaktivním režimu“ a nechal jej spuštěný v popředí. Uvidíte, že se vám zobrazí výzva terminálu připravená k použití.
> docker run -it alpine sh
/ #
Až budete v terminálu hotovi, napište exit
pro návrat do systému Windows 10.
Přístup k souborům z hostitele Docker v kontejnerech
Dalším běžným úkolem je přístup k hostitelským souborům z kontejnerů. Pro přístup k hostitelským souborům v kontejnerech vám Docker v systému Windows umožňuje propojit cestu ke složce z plochy a sdílet tuto složku s vaším kontejnerem. Tento proces se nazývá vazba .
Chcete-li vytvořit vazbu, vytvořte složku na místní jednotce. V tomto příkladu použiji E:\ a nazvěte jej vstup. Poté vytvoří nový textový dokument s názvem soubor.txt ve složce. Neváhejte použít jakoukoli cestu a soubor, který chcete.
Jakmile budete mít složku, kterou chcete sdílet mezi hostitelem a kontejnerem, Docker musí složku připojit pomocí --mount
parametr. --mount
parametr vyžaduje tři argumenty; typ připojení, cestu k zdrojovému hostitelskému adresáři a cestu k cílovému adresáři. Cílová cesta bude symbolický odkaz v kontejneru.
Níže uvidíte příklad montáže celého E:\ v hostiteli Windows 10 se zobrazí jako /home/TEST adresář uvnitř linuxového kontejneru.
> docker run --mount type=bind,source="E:/",target=/home/TEST -it alpine
Když se pokusíte připojit hostitelskou složku, Docker Desktop vás požádá o povolení sdílet tuto jednotku s kontejnery Docker, jak je vidět níže.

Pokud jste vytvořili soubor.txt soubor ve složce Windows 10, jak bylo popsáno dříve, spusťte cat /home/TEST/input/file.txt
. Uvidíte, že se zobrazí obsah.
Nyní odstraňte vstup složku, kterou jste právě vytvořili, a spusťte cat ...
příkaz znovu. Všimněte si, že shell nyní hlásí, že soubor již neexistuje.

Mapování síťových portů
Dalším důležitým konceptem, který je třeba vědět, je, jak Docker v systému Windows zachází se sítí. Pro krátký úvod se podívejme, co je potřeba k přístupu k webové službě spuštěné v kontejneru z místního hostitele.
Nejprve vytvořte ukázkový obrázek, který spustí ukázkovou webovou stránku. Stáhněte a spusťte obraz Docker s názvem dockersamples/static-site . Použijete docker container run
k tomu.
Následující příkaz provede čtyři akce najednou:
- Stáhne obrázek Dockeru z centra Docker s názvem static-site v vzorech ukotvitelných stanic „adresář“
- Spustí instanci kontejneru ze statického webu obrázek
- Okamžitě odpojí kontejner od popředí terminálu (
—detach
) - Zpřístupňuje síťové porty běžícího kontejneru hostiteli Windows 10 (
—publish-all
)
docker container run --detach --publish-all dockersamples/static-site
## Alternate/shorthand syntax that does the same thing:
## docker container run -d -P dockersamples/static-site
## docker run -d -P dockersamples/static-site
Po spuštění vrátí Docker ID kontejneru, které bylo vyvoláno, jak je uvedeno níže.

Publikování síťových portů
Od použití --publish-all
místní hostitelské porty jsou nyní mapovány na síťový zásobník kontejneru. Můžete použít docker ps
dílčí příkaz vypíše všechny běžící kontejnery včetně toho, jaké porty jsou přiřazeny všem běžícím kontejnerům. V níže uvedeném případě jeden kontejner mapuje port hostitele 32777 na port kontejneru 80 a port hostitele 32776 na port kontejneru 443.

Docker ve Windows přiřazuje kontejnerům náhodné porty při použití --publish-all
pokud je výslovně nedefinujete.
Nyní otevřete webový prohlížeč a přejděte na http://localhost:32777 nebo port, který Docker přiřadil k mapování na port 80 jako výstup z docker ps
. Pokud vše půjde dobře, měli byste vidět níže uvedenou webovou stránku.

Změna publikovaných portů
Nyní máte kontejner Docker spuštěný v Dockeru ve Windows a slouží k jednoduché webové stránce. Gratulujeme! Nyní však musíte zadat konkrétní vazbu portu, která se nespoléhá na náhodný výběr portu pomocí --publish-all
. Žádný problém. Použijte -p
parametr.
Nejprve zastavte spuštěný kontejner zadáním jedinečného řetězce ID kontejneru. Toto ID kontejneru najdete spuštěním docker ps
. Jakmile znáte ID kontejneru, zastavte kontejner a spusťte nový, přičemž určete Docker, aby přiřadil konkrétní port k publikování.
Syntaxe pro specifikaci portu je <external port>:<container port>
. Pro každý port, který chcete publikovat, použijte --publish
nebo -p
přepněte pomocí externích a kontejnerových portů, jak je uvedeno níže.
> docker stop f766
> docker run --detach -p 1337:80 dockersamples/static-site
Když zadáváte ID kontejneru, stačí zadat tolik ID, aby bylo jedinečné. Pokud provozujete pouze jeden kontejner a jeho ID je
f766f4ac8d66bf7
, můžete kontejner identifikovat pomocí libovolného počtu znaků, včetně pouzef
. Požadavek je, že cokoli napíšete, umožní jednoznačně identifikovat jeden kontejner.
Nyní přejděte do webového prohlížeče a přejděte na localhost:1337
. Pamatujte, že obraz neměníte a vždy naslouchá na portu 80; měníte pravidlo překladu portů v konfiguraci Dockeru, která vám umožní připojit se ke kontejneru.

Zastavení všech kontejnerů
Pomocí docker stop
, můžete zastavit kontejner, ale jak zastavíte více kontejnerů najednou? Jedním ze způsobů, jak toho dosáhnout, je poskytnout více ID kontejnerů oddělených mezerou. Níže můžete vidět příklad, jak zastavit tři kontejnery s ID fd50b0a446e7
, 36ee57c3b7da
a 7c45664906ff.
> docker stop fd50 36ee 7c45
Pokud v PowerShellu spravujete kontejnery Docker, můžete také použít zkratku k zastavení všech kontejnerů. Odešlete seznam ID kontejnerů pomocí
docker ps -q
na parametr stop prostřednictvím rozšíření příkazů PowerShelludocker stop (docker ps -q)
.
Potvrďte, že všechny kontejnery jsou zastaveny tím, že se nezobrazí žádné kontejnery, když zadáte docker ps
.
Uklízení
Stáhli jste několik obrázků kontejnerů a spustili některé kontejnery, které jsou nyní zastaveny. I když jsou zastaveny, jejich přidělené úložiště nezmizí z místního hostitelského disku. Musíte odstranit kontejnery, abyste uvolnili tento prostor a zamezili zahlcení vašeho pracovního prostoru.
Chcete-li odstranit jeden kontejner, použijte kontejner remove rm
parametr jako níže.
> docker container rm <container ID>
Nebo chcete-li odstranit všechny zastavené kontejnery, použijte prune
parametr, jak je uvedeno níže.
> docker container prune