Vývoj s Dockerem na Windows Subsystem for Linux (WSL)

Vývoj s Dockerem na Windows Subsystem for Linux (WSL)

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:

  1. Docker Desktop WSL 2 Tech Preview
  2. Ubuntu 18.04 z Windows Store

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:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (vyžaduje restart počítače)
  2. 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 seznamu
  • wsl --set-version ubuntu 18.04 2 — pro aktualizaci na verzi 2
  • wsl -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ývoj s Dockerem na Windows Subsystem for Linux (WSL)

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

Vývoj s Dockerem na Windows Subsystem for Linux (WSL)

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.

Vývoj s Dockerem na Windows Subsystem for Linux (WSL)

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

Vývoj s Dockerem na Windows Subsystem for Linux (WSL)

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í Remote Development extension pack.

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

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster