
Pro správnou práci s projektem v dockeru na WSL je nutné nainstalovat WSL 2. V době psaní této poznámky je její použití možné pouze v rámci účasti na programu předběžného hodnocení Windows (WSL 2 je k dispozici ve stavech 18932 a vyšších). Je také nutné zmínit, že pro instalaci a nastavení Docker Desktop je potřebná verze Windows 10 Pro.
První kroky
Po vstupu do programu předběžného hodnocení a instalaci aktualizací je třeba nainstalovat distribuci Linuxu (v tomto příkladu se používá Ubuntu 18.04) a Docker Desktop s WSL 2 Tech Preview:
V obou případech se řiďte všemi pokyny pro instalaci a nastavení.
Instalace distribuce Ubuntu 18.04
Před spuštěním Ubuntu 18.04 je nutné povolit Windows WSL a Windows Virtual Machine Platform pomocí dvou příkazů v PowerShell:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux(vyžaduje restart počítače)Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
Poté je nutné ověřit, že budeme používat WSL v2. K tomu v terminálu WSL nebo PowerShell postupně vykonáváme příkazy:
wsl -l -v— zkontrolujeme, která verze je aktuálně nainstalována. Pokud je 1, pokračujeme dále v seznamuwsl --set-version ubuntu 18.04 2— pro aktualizaci na verzi 2wsl -s ubuntu 18.04— nastavíme Ubuntu 18.04 jako výchozí distribuci
Nyní lze spustit Ubuntu 18.04 a provést nastavení (určit jméno uživatele a heslo).
Instalace Docker Desktop
Během instalace postupujeme podle pokynů. Po instalaci bude počítač vyžadovat restart a při prvním spuštění pro povolení Hyper-V (kvůli jehož podpoře je potřebná verze Windows 10 Pro).
Důležité! Pokud Docker Desktop oznámí, že je blokován firewallem, jdeme do nastavení antiviru a provedeme následující změny v pravidlech síťové brány (v tomto příkladu se používá Kaspersky Total Security):
- Přejdeme do Nastavení -> Ochrana -> Síťová brána -> Nastavit balíčková pravidla -> Local Service (TCP) -> Změnit
- Z seznamu místních portů odstraníme port 445
- Uložit
Po spuštění Docker Desktop vybíráme v jeho kontextovém menu položku WSL 2 Tech Preview.

V otevřeném okně klikneme na tlačítko Start.

Nyní jsou docker a docker-compose dostupné uvnitř distribuce WSL.
Důležité! V aktualizovaném Docker Desktop nyní existuje záložka s WSL uvnitř okna nastavení. Tam se aktivuje podpora WSL.

Důležité! Kromě zaškrtnutí aktivace WSL je také nutné v záložce Resources -> WSL Integration aktivovat váš WSL distribuci.

Spuštění
Nepříjemným překvapením byly mnohé problémy, které se objevily při pokusu o spuštění kontejnerů projektů umístěných v uživatelském adresáři Windows.
Chyby různých typů související se spuštěním bash skriptů (které se obvykle spouštějí při sestavování kontejnerů pro instalaci potřebných knihoven a distribucí) a dalších běžných věcí pro vývoj na Linuxu mě donutily zamyslet se nad umístěním projektů přímo v uživatelském adresáři Ubuntu 18.04.
.
Z řešení předchozího problému vyplývá další otázka: jak pracovat se soubory projektu prostřednictvím IDE nainstalovaného na Windows. Jako "best practice" jsem našel jen jednu variantu — práci prostřednictvím VSCode (i když jsem fanouškem PhpStorm).
Po stažení a instalaci VSCode nezapomeňte nainstalovat rozšíření .
Po instalaci výše uvedeného rozšíření stačí jednoduše provést příkaz code . v adresáři projektu při spuštěném VSCode.
V tomto příkladu je pro přístup k kontejnerům prostřednictvím prohlížeče potřebný nginx. Nainstalovat jej lze pomocí sudo apt-get install nginx se ukázalo jako méně jednoduché. Nejdříve bylo potřeba aktualizovat distribuci WSL provedením sudo apt update && sudo apt dist-upgrade, a teprve poté spustit instalaci nginx.
Důležité! Všechny místní domény nejsou zapsány v souboru /etc/hosts distribuce Linux (ten tam dokonce není), ale v souboru hosts (obvykle umístěném C:\Windows\System32\drivers\etc\hosts) systému Windows 10.
Zdroje
Podrobnější popis každého kroku lze nalézt zde:
Zdroj: habr.com
