Vývoj pomocí Docker na Windows Subsystem for Linux (WSL)

Vývoj pomocí Docker na Windows Subsystem for Linux (WSL)

Chcete-li plně pracovat s dockerovým projektem ve WSL, musíte nainstalovat WSL 2. V době psaní tohoto článku jej lze používat pouze jako součást programu Windows Insider (WSL 2 je k dispozici v sestavení 18932 a vyšších). Samostatně také stojí za zmínku, že k instalaci a konfiguraci Docker Desktop potřebujete verzi Windows 10 Pro.

První kroky

Po připojení k programu Insider a instalaci aktualizací je třeba nainstalovat distribuci Linuxu (v tomto příkladu je použito Ubuntu 18.04) a Docker Desktop s WSL 2 Tech Preview:

  1. Technický náhled Docker Desktop WSL 2
  2. Ubuntu 18.04 z Windows Store

V obou odstavcích dodržujte všechny pokyny pro instalaci a konfiguraci.

Instalace distribuce Ubuntu 18.04

Před spuštěním Ubuntu 18.04 musíte povolit Windows WSL a Windows Virtual Machine Platform spuštěním 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é se musíme ujistit, že budeme používat WSL v2. Chcete-li to provést, spusťte v terminálu WSL nebo PowerShell následující příkazy:

  • wsl -l -v - podívejte se, která verze je aktuálně nainstalována. Pokud 1, přejděte v seznamu dolů
  • wsl --set-version ubuntu 18.04 2 - upgrade na verzi 2
  • wsl -s ubuntu 18.04 - nainstalujte Ubuntu 18.04 jako výchozí distribuci

Nyní můžete spustit Ubuntu 18.04, nakonfigurovat (zadat uživatelské jméno a heslo).

Instalace Docker Desktop

Během procesu instalace postupujte podle pokynů. Počítač bude po instalaci a prvním spuštění vyžadovat restartování, aby bylo možné Hyper-V (proto je vyžadován Windows 10 Pro).

Důležité! Pokud Docker Desktop hlásí blokování brány firewall, přejděte do nastavení antiviru a proveďte následující změny pravidel brány firewall (v tomto příkladu je jako antivirus použit Kaspersky Total Security):

  • Přejděte do Nastavení -> Zabezpečení -> Brána firewall -> Konfigurovat pravidla paketů -> Místní služba (TCP) -> Upravit
  • Odeberte port 445 ze seznamu místních portů
  • Udržet

Po spuštění Docker Desktop vyberte z kontextové nabídky WSL 2 Tech Preview.

Vývoj pomocí Docker na Windows Subsystem for Linux (WSL)

V okně, které se otevře, klikněte na tlačítko Start.

Vývoj pomocí Docker na Windows Subsystem for Linux (WSL)

Docker a docker-compose jsou nyní k dispozici v distribuci WSL.

Důležité! Aktualizovaná plocha Dockeru má nyní v okně nastavení kartu s WSL. Je tam povolena podpora WSL.

Vývoj pomocí Docker na Windows Subsystem for Linux (WSL)

Důležité! Kromě zaškrtávacího políčka aktivace WSL musíte také aktivovat distribuci WSL na záložce Zdroje-> Integrace WSL.

Vývoj pomocí Docker na Windows Subsystem for Linux (WSL)

Spusťte

Mnoho problémů, které se objevily při pokusu o vytvoření kontejnerů projektů umístěných v uživatelském adresáři Windows, bylo překvapením.

Různé druhy chyb souvisejících se spouštěním bash skriptů (které obvykle začínají, když jsou kontejnery sestaveny pro instalaci potřebných knihoven a distribucí) a dalších věcí, které jsou běžné pro vývoj na Linuxu, mě přiměly přemýšlet o umístění projektů přímo do uživatelského adresáře Ubuntu 18.04.

.

Z řešení předchozího problému vyplývá: jak pracovat se soubory projektu prostřednictvím IDE nainstalovaného ve Windows. Jako „nejlepší postup“ jsem pro sebe našel pouze jednu možnost - práci přes VSCode (ačkoli jsem fanouškem PhpStorm).

Po stažení a instalaci VSCode jej nezapomeňte nainstalovat do rozšíření Balíček rozšíření pro vzdálený vývoj.

Po instalaci výše uvedeného rozšíření jednoduše spusťte příkaz code . v adresáři projektu, když je spuštěn VSCode.

V tomto příkladu je nginx vyžadován pro přístup ke kontejnerům prostřednictvím prohlížeče. Nainstalujte to přes sudo apt-get install nginx ukázalo se, že to není tak snadné. Prvním krokem byla aktualizace distribuce WSL spuštěním sudo apt update && sudo apt dist-upgradea teprve poté spusťte instalaci nginx.

Důležité! Všechny lokální domény nejsou zapsány v souboru /etc/hosts distribuce Linuxu (ani tam není), ale v souboru hosts Windows 32 (obvykle se nachází C:WindowsSystem10driversetchosts).

zdroje

Podrobnější popis každého kroku naleznete zde:

Zdroj: www.habr.com

Přidat komentář