Ontwikkeling met Docker op Windows Subsystem for Linux (WSL)

Ontwikkeling met Docker op Windows Subsystem for Linux (WSL)

Voor een optimale werking met een project op Docker in WSL is de installatie van WSL 2 noodzakelijk. Ten tijde van het schrijven van deze nota is het gebruik ervan alleen mogelijk in het kader van deelname aan het Windows Insider Program (WSL 2 is beschikbaar in builds 18932 en hoger). Het is ook belangrijk op te merken dat Windows 10 Pro vereist is voor de installatie en configuratie van Docker Desktop.

Eerste stappen

Na deelname aan het Windows Insider Program en het installeren van de updates, moet een Linux-distributie (in dit voorbeeld wordt Ubuntu 18.04 gebruikt) en Docker Desktop met WSL 2 Tech Preview worden geïnstalleerd:

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

Volg in beide gevallen de instructies voor installatie en configuratie.

Installatie van de Ubuntu 18.04-distributie

Voordat je Ubuntu 18.04 start, moet je Windows WSL en Windows Virtual Machine Platform inschakelen door de volgende twee opdrachten in PowerShell uit te voeren:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (vereist opnieuw opstarten van de computer)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Daarna moet je controleren of we WSL v2 gaan gebruiken. Voer hiervoor de volgende opdrachten uit in de WSL-terminal of PowerShell:

  • wsl -l -v — bekijk welke versie momenteel is geïnstalleerd. Als het 1 is, ga dan verder met de lijst.
  • wsl --set-version ubuntu 18.04 2 — om te upgraden naar versie 2.
  • wsl -s ubuntu 18.04 — zet Ubuntu 18.04 als standaarddistributie.

Nu kun je Ubuntu 18.04 starten en de configuratie uitvoeren (gebruikersnaam en wachtwoord opgeven).

Installatie van Docker Desktop

Volg de aanwijzingen tijdens de installatie. De computer heeft een herstart nodig na de installatie en bij de eerste start om Hyper-V in te schakelen (deze functie vereist een versie van Windows 10 Pro).

Belangrijk! Als Docker Desktop meldt dat het geblokkeerd wordt door de firewall, ga dan naar de antivirusinstellingen en breng de volgende wijzigingen aan in de netwerkinstellingen (in dit voorbeeld wordt Kaspersky Total Security gebruikt):

  • Ga naar Instellingen -> Bescherming -> Netwerkbeveiliging -> Configureer pakketregels -> Local Service (TCP) -> Wijzigen
  • Verwijder poort 445 uit de lijst met lokale poorten.
  • Opslaan

Na het starten van Docker Desktop kiezen we in het contextmenu de optie WSL 2 Tech Preview.

Ontwikkeling met Docker op Windows Subsystem for Linux (WSL)

In het geopende venster klikken we op de knop Start.

Ontwikkeling met Docker op Windows Subsystem for Linux (WSL)

Nu zijn docker en docker-compose beschikbaar binnen de WSL-distributie.

Belangrijk! In de bijgewerkte Docker Desktop is er nu een tabblad met WSL in het instellingenvenster. Daar wordt de ondersteuning voor WSL ingeschakeld.

Ontwikkeling met Docker op Windows Subsystem for Linux (WSL)

Belangrijk! Naast het aanvinken van de WSL-activatie moet u ook in het tabblad Resources -> WSL-integratie uw WSL-distributie activeren.

Ontwikkeling met Docker op Windows Subsystem for Linux (WSL)

Start

Het was verrassend hoeveel problemen er opdoken bij het proberen op te starten van de containers van projecten die zich in de Windows-gebruikersdirectory bevinden.

Verschillende fouten, gerelateerd aan het uitvoeren van bash-scripts (die doorgaans worden gestart bij het bouwen van containers voor het installeren van benodigde bibliotheken en distributies) en andere gebruikelijke zaken voor ontwikkeling op Linux, zorgden ervoor dat ik ging nadenken over het plaatsen van projecten direct in de gebruikersdirectory van Ubuntu 18.04.

.

Vanuit de oplossing van het vorige probleem volgt het volgende: hoe om te gaan met projectbestanden via een op Windows geïnstalleerde IDE. Als beste praktijk vond ik voor mezelf slechts één optie — werken via VSCode (hoewel ik een fan ben van PhpStorm).

Na het downloaden en installeren van VSCode moet u zeker de extensie installeren Remote Development extensie pakket.

Na het installeren van de eerder genoemde extensie is het voldoende om simpelweg de opdracht uit te voeren code . in de projectdirectory met VSCode geopend.

In dit voorbeeld is nginx noodzakelijk om toegang te krijgen tot de containers via de browser. Installeer het via sudo apt-get install nginx was niet zo eenvoudig. Allereerst moest de WSL-distributie worden bijgewerkt door sudo apt update && sudo apt dist-upgrade, uit te voeren en pas daarna kon de installatie van nginx worden gestart.

Belangrijk! Alle lokale domeinen worden niet in het bestand /etc/hosts van de Linux-distributie geregistreerd (dat bestaat daar zelfs niet), maar in het hosts-bestand (meestal te vinden in C:WindowsSystem32driversetchosts) van Windows 10.

Bronnen

Een gedetailleerdere beschrijving van elke stap is hier te vinden:

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster