Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento podrobný průvodce vám pomůže začít s vývojem pomocí vzdálených kontejnerů nastavením Docker Desktopu pro Windows s WSL 2 (subsystém Windows pro Linux verze 2).
Docker Desktop pro Windows poskytuje vývojové prostředí pro vytváření, přesouvání a spouštění dockerizovaných aplikací. Povolením modulu založeného na WSL 2 můžete na stejném počítači spouštět linuxové i windows kontejnery v Docker Desktopu. (Docker Desktop je zdarma pro osobní použití a malé firmy, informace o cenách Pro, Team nebo Business najdete v nejčastějších dotazech k webu Dockeru).
Poznámka:
Doporučujeme používat Docker Desktop kvůli integraci s Windows a subsystémem Windows pro Linux. I když ale Docker Desktop podporuje spouštění linuxových i windows kontejnerů, nemůžete spustit oba současně. Pokud chcete spouštět linuxové a windows kontejnery současně, budete muset nainstalovat a spustit samostatnou instanci Dockeru ve WSL. Pokud potřebujete spouštět souběžné kontejnery nebo chcete nainstalovat kontejnerový modul přímo ve vaší linuxové distribuci, postupujte podle pokynů pro instalaci Linuxu pro danou službu kontejneru, jako je instalace Modulu Dockeru na Ubuntu nebo Instalace podmana pro spouštění linuxových kontejnerů.
Přehled kontejnerů Dockeru
Docker je nástroj, který slouží k vytváření, nasazování a spouštění aplikací pomocí kontejnerů. Kontejnery umožňují vývojářům zabalit aplikaci se všemi částmi, které potřebuje (knihovny, architektury, závislosti atd.) a odeslat je jako jeden balíček. Použití kontejneru zajišťuje, aby aplikace běžela stejně bez ohledu na všechna přizpůsobená nastavení nebo dříve nainstalované knihovny v počítači, na kterém je spuštěná, která se mohla lišit od počítače použitého k zápisu a otestování kódu aplikace. To umožňuje vývojářům soustředit se na psaní kódu, aniž by se museli starat o systém, na který se bude kód spouštět.
Kontejnery Dockeru se podobají virtuálním počítačům, ale nevytvoří celý virtuální operační systém. Místo toho Docker umožňuje aplikaci používat stejné linuxové jádro jako systém, na kterém běží. Díky tomu může balíček aplikace vyžadovat jenom části, které ještě nejsou na hostitelském počítači, což snižuje velikost balíčku a zlepšuje výkon.
Průběžná dostupnost s využitím kontejnerů Dockeru s nástroji, jako je Kubernetes, je dalším důvodem oblíbenosti kontejnerů. To umožňuje vytváření více verzí kontejneru aplikací v různých časech. Místo nutnosti vzít celý systém pro aktualizace nebo údržbu může být každý kontejner (a jeho konkrétní mikroslužby) za běhu nahrazen. Můžete připravit nový kontejner se všemi aktualizacemi, nastavit kontejner pro produkční prostředí a jednoduše nasměrovat na nový kontejner, jakmile bude připravený. Můžete také archivovat různé verze aplikace pomocí kontejnerů a v případě potřeby je nechat spuštěné jako bezpečnostní náhradní zařízení.
Další informace najdete v tématu Úvod do kontejnerů Dockeru.
Požadavky
- WSL verze 1.1.3.0 nebo novější.
- Windows 11 64bitová verze: Home nebo Pro verze 21H2 nebo vyšší nebo Enterprise nebo Education verze 21H2 nebo vyšší.
- Windows 10 64bitová verze (doporučeno): Home nebo Pro 22H2 (build 19045) nebo novější nebo Enterprise nebo Education 22H2 (build 19045) nebo vyšší. (Minimum): Home nebo Pro 21H2 (build 19044) nebo vyšší, Enterprise nebo Education 21H2 (build 19044) nebo vyšší. Aktualizace Windows
- 64bitový procesor s překladem adres druhé úrovně (SLAT).
- 4 GB systémové paměti RAM.
- Povolte hardwarovou virtualizaci v systému BIOS.
- Nainstalujte WSL a nastavte uživatelské jméno a heslo pro vaši linuxovou distribuci spuštěnou ve WSL 2.
- Nainstalujte Visual Studio Code(volitelné) Tím získáte co nejlepší prostředí, včetně možnosti kódování a ladění uvnitř vzdáleného kontejneru Dockeru a připojení k distribuci Linuxu.
- Nainstalujte terminál Windows(volitelné). Tím získáte co nejlepší prostředí, včetně možnosti přizpůsobení a otevření více terminálů ve stejném rozhraní (včetně Ubuntu, Debianu, PowerShellu, Azure CLI nebo libovolného zařízení, které chcete použít).
- Zaregistrujte si ID Dockeru v Docker Hubu(volitelné).
- Informace o aktualizacích podmínek použití najdete v licenční smlouvě k Docker Desktopu .
Další informace najdete v dokumentaci k Dockeru – Požadavky na systém pro instalaci Docker Desktopu ve Windows.
Informace o tom, jak nainstalovat Docker na Windows Server, najdete v tématu Začínáme: Příprava Windows pro kontejnery.
Poznámka:
WSL může spouštět distribuce v režimu WSL verze 1 nebo WSL 2. Můžete to zkontrolovat tak, že otevřete PowerShell a zadáte: wsl -l -v
. Ujistěte se, že je vaše distribuce nastavena tak, aby používala WSL 2 zadáním: wsl --set-version <distro> 2
. Nahraďte <distro>
názvem distribuce (např. Ubuntu 18.04).
Ve WSL verze 1 se kvůli základním rozdílům mezi Windows a Linuxem nepodařilo spustit modul Docker přímo uvnitř WSL, takže tým Dockeru vyvinul alternativní řešení pomocí Hyper-V virtuálních počítačů a LinuxKitu. Vzhledem k tomu, že WSL 2 teď běží na linuxovém jádru s plnou kapacitou volání systému, může Docker plně běžet ve WSL 2. To znamená, že kontejnery Linuxu můžou běžet nativně bez emulace, což vede k lepšímu výkonu a interoperabilitě mezi vašimi nástroji pro Windows a Linux.
Instalace Docker Desktopu
S back-endem WSL 2 podporovaným v Docker Desktopu pro Windows můžete pracovat ve vývojovém prostředí založeném na Linuxu a sestavovat kontejnery založené na Linuxu, přičemž Visual Studio Code používejte pro úpravy a ladění kódu a svůj kontejner spouštějte v prohlížeči Microsoft Edge ve Windows.
Instalace Dockeru (po instalaci WSL):
Stáhněte si Docker Desktop a postupujte podle pokynů k instalaci.
Po instalaci spusťte Docker Desktop z nabídky Start systému Windows a pak v nabídce Skryté ikony hlavního panelu vyberte ikonu Dockeru. Kliknutím pravým tlačítkem myši na ikonu zobrazte nabídku příkazů Dockeru a vyberte Nastavení.
Ujistěte se, že je v části Obecné nastavení> zaškrtnuté políčko Použít modul založený na WSL 2.
Vyberte si z nainstalovaných distribucí WSL 2, u kterých chcete povolit integraci Dockeru, a to tak, že přejdete na: Nastavení>Prostředky>WSL Integrace.
Pokud chcete ověřit, že je Docker nainstalovaný, otevřete distribuci WSL (např. Ubuntu) a zadáním následujícího postupu zobrazte verzi a číslo buildu:
docker --version
Otestujte, že instalace funguje správně, a to spuštěním jednoduché integrované image Dockeru pomocí:
docker run hello-world
Návod
Tady je několik užitečných příkazů Dockeru, které je potřeba znát:
- Zadáním následujícího příkazu vypište příkazy dostupné v rozhraní příkazového řádku Dockeru:
docker
- Informace pro konkrétní příkaz vypíšete s:
docker <COMMAND> --help
- Vypíšete image dockeru na vašem počítači (což je jenom image hello-world v tomto okamžiku) takto:
docker image ls --all
- Vypište kontejnery na vašem počítači pomocí:
docker container ls --all
nebodocker ps -a
(bez přepínače -a pro zobrazení všech, zobrazí se pouze spuštěné kontejnery). - Uveďte systémové informace týkající se instalace Dockeru, včetně statistik a prostředků (procesoru a paměti) dostupných v kontextu WSL 2:
docker info
Vývoj ve vzdálených kontejnerech pomocí VS Code
Pokud chcete začít s vývojem aplikací pomocí Dockeru s WSL 2, doporučujeme používat VS Code spolu s rozšířeními WSL, Dev Containers a Dockeru.
Nainstalujte rozšíření VS Code WSL. Toto rozšíření umožňuje otevřít projekt Linuxu spuštěný ve WSL v editoru VS Code (nemusíte se starat o problémy s cestami, binární kompatibilitu nebo jiné problémy s více operačními systémy).
Nainstalujte rozšíření VS Code Dev Containers. Toto rozšíření umožňuje otevřít složku nebo úložiště projektu uvnitř kontejneru a využít úplnou sadu funkcí editoru Visual Studio Code k provádění vývoje v rámci kontejneru.
Nainstalujte rozšíření VS Code Dockeru. Toto rozšíření přidá funkce pro sestavování, správu a nasazování kontejnerizovaných aplikací z VS Code. (K skutečnému použití kontejneru jako vývojového prostředí potřebujete rozšíření Dev Containers.)
Pojďme pomocí Dockeru vytvořit vývojový kontejner pro existující projekt aplikace.
V tomto příkladu použijem zdrojový kód z kurzu Hello World pro Django ve vývojovém prostředí Pythonu a nastavím dokumenty. Tento krok můžete přeskočit, pokud chcete použít vlastní zdrojový kód projektu. Pokud si chcete stáhnout HelloWorld-Django webovou aplikaci z GitHubu, otevřete terminál WSL (například Ubuntu) a zadejte:
git clone https://github.com/mattwojo/helloworld-django.git
Poznámka:
Vždy uložte kód do stejného systému souborů, ve kterém používáte nástroje. Výsledkem bude rychlejší výkon přístupu k souborům. V tomto příkladu používáme distribuci Linuxu (Ubuntu) a chceme ukládat soubory projektu do systému
\\wsl\
souborů WSL . Ukládání projektových souborů v systému souborů Windows by při použití linuxových nástrojů ve WSL pro přístup k těmto souborům výrazně zpomalilo.V terminálu WSL změňte adresáře do složky zdrojového kódu pro tento projekt:
cd helloworld-django
Otevřete projekt v editoru VS Code spuštěném na místním serveru rozšíření WSL zadáním:
code .
Zkontrolujte zelený vzdálený indikátor v levém dolním rohu instance VS Code, že jste připojení k distribuci WSL Linux.
Z palety příkazů VS Code (Ctrl + Shift + P), zadejte: Dev Containers: Znovu otevřít v kontejneru , protože používáme složku, která je již otevřena pomocí rozšíření WSL. Alternativně můžete použít Dev Containers: Otevřít složku v kontejneru... a zvolit složku WSL pomocí místní
\\wsl$
sdílené složky (ze strany Windows). Další podrobnosti najdete v rychlém startu editoru Visual Studio Code: Otevření existující složky v kontejneru . Pokud se tyto příkazy při psaní nezobrazují, zkontrolujte, jestli jste nainstalovali výše propojené rozšíření Dev Containers.Vyberte složku projektu, kterou chcete kontejnerizovat. V mém případě je to
\\wsl\Ubuntu-20.04\home\mattwojo\repos\helloworld-django\
Zobrazí se seznam definic kontejnerů, protože ve složce projektu (úložiště) ještě neexistuje žádná konfigurace vývojového kontejneru. Seznam definic konfigurace kontejneru, které se zobrazí, se filtruje na základě typu projektu. Pro projekt Django vyberu Python 3.
Otevře se nová instance VS Code, začne sestavovat novou image a jakmile se sestavení dokončí, spustí se kontejner. Uvidíte, že se objevila nová
.devcontainer
složka s informacemi o konfiguraci kontejneru veDockerfile
souboru adevcontainer.json
souboru.Pokud chcete ověřit, že váš projekt je stále připojený k WSL i v rámci kontejneru, otevřete integrovaný terminál VS Code (Ctrl + Shift + ~). Zkontrolujte operační systém zadáním:
uname
a verze Pythonu pomocí:python3 --version
. Vidíte, že výstup příkazu 'uname' se vrátil jako "Linux", takže jste stále připojeni k enginu WSL 2 a číslo verze Pythonu bude založeno na konfiguraci kontejneru, která se může lišit od verze Pythonu nainstalované ve vaší distribuci WSL.Pokud chcete spustit a ladit aplikaci uvnitř kontejneru pomocí editoru Visual Studio Code, nejprve otevřete nabídku Spustit (Ctrl+Shift+D nebo vyberte kartu na úplně levém řádku nabídek). Potom vyberte Spustit a ladit a vyberte konfiguraci ladění a zvolte konfiguraci, která nejlépe vyhovuje vašemu projektu (v mém příkladu to bude Django). Tím se ve složce projektu vytvoří
launch.json
soubor.vscode
s pokyny ke spuštění aplikace.V aplikaci VS Code vyberte Spustit>Spustit ladění (nebo stiskněte klávesu F5). Tím se otevře terminál uvnitř VS Code a měl by se zobrazit výsledek, který říká něco jako: "Spuštění vývojového serveru na http://127.0.0.1:8000/ Ukončete server pomocí CONTROL-C." Podržte klávesu Control a vyberte zobrazenou adresu pro otevření vaší aplikace ve výchozím webovém prohlížeči a pro zobrazení vašeho projektu spuštěného uvnitř kontejneru.
Teď jste úspěšně nakonfigurovali vzdálený vývojový kontejner pomocí Docker Desktopu, který využívá back-end WSL 2, ve kterých můžete kódovat, sestavovat, spouštět, nasazovat nebo ladit pomocí VS Code.
Řešení problémů
Kontext Dockeru WSL je zastaralý
Pokud jste používali dřívější verzi Tech Preview Dockeru pro WSL, možná máte kontext Dockeru s názvem "wsl", který je teď zastaralý a už se nepoužívá. Pomocí příkazu můžete zkontrolovat: docker context ls
. Tento kontext wsl můžete odebrat, abyste se vyhnuli chybám pomocí příkazu: docker context rm wsl
chcete použít výchozí kontext pro Windows i WSL2.
Možné chyby, se kterými se můžete setkat s tímto zastaralým kontextem wsl, patří: docker wsl open //./pipe/docker_wsl: The system cannot find the file specified.
nebo error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_wsl/v1.40/images/json?all=1: open //./pipe/docker_wsl: The system cannot find the file specified.
Další informace o tomto problému najdete v tématu Jak nastavit Docker v systému Windows pro Linux (WSL2) ve Windows 10.
Potíže s vyhledáním složky úložiště imagí Dockeru
Docker vytvoří dvě složky distribuce pro ukládání dat:
- \wsl$\docker-desktop
- \wsl$\docker-desktop-data
Tyto složky najdete tak, že otevřete distribuci WSL Linux a zadáte: explorer.exe .
pro zobrazení složky v Průzkumníku souborů Windows. Zadejte: \\wsl\<distro name>\mnt\wsl
místo <distro name>
zadejte název vaší distribuce (tj. Ubuntu-20.04), abyste viděli tyto složky.
Další informace o vyhledání umístění úložiště Dockeru ve WSL najdete v tomto problému v úložišti WSL nebo v tomto příspěvku StackOverflow.
Další nápovědu k obecným problémům s řešením potíží ve WSL najdete v dokumentaci k řešení potíží .
Dodatečné zdroje
- Dokumentace k Dockeru: Osvědčené postupy pro Docker Desktop s WSL 2
- Zpětná vazba k Docker Desktopu pro Windows: Nahlásit problém
- Blog VS Code: Pokyny pro výběr vývojového prostředí
- Blog VS Code: Použití Dockeru ve WSL 2
- Blog VS Code: Použití vzdálených kontejnerů ve WSL 2
- Hanselminutes Podcast: Zpříjemnění Dockeru pro vývojáře se Simonem Ferquelem
Windows Subsystem for Linux