Ontwikkeling met Docker op Windows Subsystem voor Linux (WSL)

Ontwikkeling met Docker op Windows Subsystem voor Linux (WSL)

Om volledig met een Docker-project in WSL te kunnen werken, moet je WSL 2 installeren. Op het moment van schrijven is het gebruik ervan alleen mogelijk als onderdeel van deelname aan het Windows Insider-programma (WSL 2 is beschikbaar in builds 18932 en hoger). Het is ook de moeite waard om apart te vermelden dat de Windows 10 Pro-versie vereist is om Docker Desktop te installeren en configureren.

Eerste stappen

Nadat u zich bij het Insider-programma heeft aangesloten en updates hebt geïnstalleerd, moet u een Linux-distributie (Ubuntu 18.04 in dit voorbeeld) en Docker Desktop met WSL 2 Tech Preview installeren:

  1. Docker Desktop WSL 2 technische preview
  2. Ubuntu 18.04 uit de Windows Store

Op beide punten volgen wij alle installatie- en configuratie-instructies.

De Ubuntu 18.04-distributie installeren

Voordat u Ubuntu 18.04 uitvoert, moet u Windows WSL en Windows Virtual Machine Platform inschakelen door twee opdrachten uit te voeren in PowerShell:

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

Daarna moeten we ervoor zorgen dat we WSL v2 zullen gebruiken. Om dit te doen, voert u in de WSL- of PowerShell-terminal de volgende opdrachten uit:

  • wsl -l -v — kijk welke versie momenteel is geïnstalleerd. Indien 1, dan gaan we verder naar beneden in de lijst
  • wsl --set-version ubuntu 18.04 2 - om te updaten naar versie 2
  • wsl -s ubuntu 18.04 — installeer Ubuntu 18.04 als de standaarddistributie

Nu kunt u Ubuntu 18.04 starten en configureren (geef uw gebruikersnaam en wachtwoord op).

Docker Desktop installeren

Volg de instructies tijdens het installatieproces. De computer moet na de installatie en bij de eerste keer opstarten opnieuw worden opgestart om Hyper-V in te schakelen (waarvoor ondersteuning door Windows 10 Pro vereist is).

Belangrijk! Als Docker Desktop blokkering door de firewall meldt, ga dan naar de antivirusinstellingen en breng de volgende wijzigingen aan in de firewallregels (in dit voorbeeld wordt Kaspersky Total Security gebruikt als antivirusprogramma):

  • Ga naar Instellingen -> Beveiliging -> Firewall -> Pakketregels configureren -> Lokale service (TCP) -> Bewerken
  • Verwijder poort 445 uit de lijst met lokale poorten
  • Sparen

Nadat u Docker Desktop hebt gestart, selecteert u WSL 2 Tech Preview in het contextmenu.

Ontwikkeling met Docker op Windows Subsystem voor Linux (WSL)

In het geopende venster klikt u op de knop Start.

Ontwikkeling met Docker op Windows Subsystem voor Linux (WSL)

Docker en docker-compose zijn nu beschikbaar binnen de WSL-distributie.

Belangrijk! De bijgewerkte Docker Desktop heeft nu een tabblad met WSL in het instellingenvenster. WSL-ondersteuning is daar ingeschakeld.

Ontwikkeling met Docker op Windows Subsystem voor Linux (WSL)

Belangrijk! Naast het selectievakje voor WSL-activering moet u ook uw WSL-distributie activeren op het tabblad Bronnen->WSL-integratie.

Ontwikkeling met Docker op Windows Subsystem voor Linux (WSL)

lancering

Wat onverwacht was, waren de vele problemen die zich voordeden bij het ophalen van projectcontainers die zich in de Windows-gebruikersmap bevonden.

Verschillende soorten fouten die verband houden met de lancering van bash-scripts (die meestal beginnen bij het bouwen van containers voor het installeren van de benodigde bibliotheken en distributies) en andere zaken die veel voorkomen bij ontwikkeling op Linux, hebben ons doen nadenken over het rechtstreeks plaatsen van projecten in de gebruikersmap van Ubuntu 18.04.

.

Uit de oplossing voor het vorige probleem volgt het volgende: hoe u met projectbestanden kunt werken via een IDE die op Windows is geïnstalleerd. Als “best practice” vond ik voor mezelf maar één optie: werken via VSCode (hoewel ik een fan ben van PhpStorm).

Zorg ervoor dat u VSCode na het downloaden en installeren in de extensie installeert Uitbreidingspakket voor externe ontwikkeling.

Nadat u de bovengenoemde extensie hebt geïnstalleerd, voert u eenvoudigweg de opdracht uit code . in de projectmap wanneer VSCode actief is.

In dit voorbeeld is nginx vereist om via de browser toegang te krijgen tot containers. Installeer het via sudo apt-get install nginx Het bleek niet zo eenvoudig te zijn. Eerst moesten we de WSL-distributie bijwerken door deze uit te voeren sudo apt update && sudo apt dist-upgradeen start pas daarna de nginx-installatie.

Belangrijk! Alle lokale domeinen worden niet geregistreerd in het bestand /etc/hosts van de Linux-distributie (het is daar niet eens), maar in het hosts-bestand (meestal gelegen in C:WindowsSystem32driversetchosts) van Windows 10.

bronnen

Een meer gedetailleerde beschrijving van elke stap vindt u hier:

Bron: www.habr.com

Voeg een reactie