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:
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.
In het geopende venster klikt u op de knop Start.
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.
Belangrijk! Naast het selectievakje voor WSL-activering moet u ook uw WSL-distributie activeren op het tabblad Bronnen->WSL-integratie.
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).
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: