
Na plnú funkčnosť projektu na dockeri v WSL je potrebná inštalácia WSL 2. V čase písania tohto oznámenia je jej používanie možné iba v rámci účasti na programe predbežného hodnotenia systému Windows (WSL 2 je dostupné v zostavách 18932 a vyššie). Je tiež potrebné spomenúť, že potrebujete verziu Windows 10 Pro na inštaláciu a nastavenie Docker Desktop.
Prvé kroky
Po prihlásení do programu predbežného hodnotenia a inštalácii aktualizácií je potrebné nainštalovať distribúciu Linuxu (v tomto príklade sa používa Ubuntu 18.04) a Docker Desktop s WSL 2 Tech Preview:
V oboch bodoch sa riadime všetkými pokynmi k inštalácii a nastaveniu.
Inštalácia distribúcie Ubuntu 18.04
Pred spustením Ubuntu 18.04 je potrebné zapnúť Windows WSL a Windows Virtual Machine Platform vykonaním dvoch príkazov v PowerShelli:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux(bude vyžadovať reštart počítača)Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
Následne sa musíte uistiť, že používame WSL v2. Na to v termináli WSL alebo PowerShell postupne vykonáme príkazy:
wsl -l -v— kontrolujeme, ktorá verzia je aktuálne nainštalovaná. Ak je 1, pokračujeme v zoznamewsl --set-version ubuntu 18.04 2— pre aktualizáciu na verziu 2wsl -s ubuntu 18.04— nastavíme Ubuntu 18.04 ako predvolenú distribúciu
Teraz môžeme spustiť Ubuntu 18.04, vykonať nastavenie (určiť meno používateľa a heslo).
Inštalácia Docker Desktop
Počas inštalácie sa riadime pokynmi. Po inštalácii si počítač bude vyžadovať reštart a pri prvom spustení na povolenie Hyper-V (kvôli podpore, ktorú vyžaduje verzia Windows 10 Pro).
Dôležité! Ak Docker Desktop nahlási blokáciu zo strany firewallu, prejdeme do nastavení antivírusového softvéru a vykonáme nasledujúce zmeny v pravidlách sieťovej brány (v tomto príklade sa ako antivírus používa Kaspersky Total Security):
- Prejdeme do Nastavenia -> Ochrana -> Sieťová brána -> Nastaviť paketové pravidlá -> Local Service (TCP) -> Zmeniť
- Z zoznamu lokálnych portov odstránime port 445
- Uložiť
Po spustení Docker Desktop v jeho kontextovej ponuke vyberieme položku WSL 2 Tech Preview.

V otvorenom okne stlačíme tlačidlo Štart.

Teraz sú docker a docker-compose dostupné v rámci distribúcie WSL.
Dôležité! V aktualizovanom Docker Desktop je teraz karta s WSL vo vnútri okna nastavení. Tam sa zapína podpora WSL.

Dôležité! Okrem zaškrtnutia aktivácie WSL je tiež potrebné v záložke Resources->WSL Integration aktivovať váš WSL distribúciu.

Spustenie
Prekvapením boli mnohé problémy, ktoré sa objavili pri pokuse spustiť kontajnery projektov umiestnených v adresári používateľa Windows.
Chyby rôzneho druhu spojené so spúšťaním bash skriptov (ktoré sa zvyčajne spúšťajú pri zostavovaní kontajnerov na inštaláciu potrebných knižníc a distribúcií) a iné, bežné pre vývoj na Linuxe, ma prinútili zamyslieť sa nad umiestnením projektov priamo v adresári používateľa Ubuntu 18.04.
.
Z predchádzajúceho problému vyplýva nasledujúce: ako pracovať s súbormi projektu cez IDE nainštalované na Windows. Ako "best practice" som našiel len jednu možnosť - práca prostredníctvom VSCode (hoci som fanúšikom PhpStorm).
Po stiahnutí a inštalácii VSCode je potrebné nainštalovať rozšírenie .
Po inštalácii vyššie uvedeného rozšírenia stačí jednoducho vykonať príkaz code . v adresári projektu pri spustené VSCode.
V tomto príklade je na prístup k kontajnerom prostredníctvom prehliadača potrebný nginx. Nainštalovať ho cez sudo apt-get install nginx sa ukázalo byť nie také jednoduché. Najprv bolo potrebné aktualizovať distribúciu WSL vykonaním sudo apt update && sudo apt dist-upgrade, a až potom spustiť inštaláciu nginx.
Dôležité! Všetky lokálne domény sú zapisované nie v súbore /etc/hosts distribúcie Linux (ten tam ani nie je), ale v súbore hosts (zvyčajne sa nachádza C:WindowsSystem32driversetchosts) Windows 10.
Zdroje
Podrobnejší popis každého kroku nájdete tu:
Zdroj: habr.com
