WSL 2 2.2.1 met standaard ingeschakelde dns-tunneling is uit

Microsoft heeft versie 2.2.1 van het Windows Subsystem for Linux 2 uitgebracht. Daarin wordt onder andere dns-tunneling standaard ingeschakeld. Ook is de onderliggende Linux-kernel bijgewerkt naar versie 5.15.

Microsoft schrijft in de releasenotes van de prerelease dat versie 2.2.1 van WSL 2 standaard dns-tunneling inschakelt. Die functionaliteit zette het bedrijf vorig jaar al in WSL 2 2.0, maar toen ging het nog om een experimentele feature. In de nieuwe release staat de tunneling standaard aan. Met dns-tunneling worden dns-verzoeken vanuit een VM naar de Windows-host niet meer geblokkeerd door bijvoorbeeld een firewall of vpn, maar wordt er een virtualisatie toegevoegd waarmee dns-verzoeken vanuit WSL direct naar Windows gaan. Volgens Microsoft is dns-tunneling verder ook geïntegreerd in Docker.

WSL 2 krijgt verder een aantal kleine bugfixes. Een daarvan is bijvoorbeeld een bug waarbij WSL soms vastloopt bij distro-initialisering. Verder zegt Microsoft dat de onderliggende Linux-kernel is bijgewerkt naar 5.15.150.1-2, de lts-release.

Windows Subsystem for Linux

Door Tijs Hofmans

Nieuwscoördinator

22-03-2024 • 20:29

58

Submitter: TheVivaldi

Reacties (58)

58
57
38
0
0
3
Wijzig sortering
Beetje jammer dat de community support voor WSL er bijna niet is. Microsoft is echt grote stappen aan het zetten richting een allround OS en daar hoort WSL ook bij. If you can't fight them, join them lijkt de gedachte.

Nu heb ik een paar Ubuntu servers op Hyper-V lopen om wat webapps te draaien, zodat deze helemaal geïsoleerd zijn. Zou leuk zijn als ik ze via docker of WSL kon draaien dan heb ik die hele Hyper-V en Ubuntu management overhead niet. Maar zodra je daaraan begint ben je op jezelf aangewezen want de docs zijn er niet en zodra iets stuk is mag je het zelf uit gaan zoeken.

Kudo's naar Microsoft, ik vind Windows Server en Windows 11 echt super om mee te werken. Jammer dat ze dan zo opdringerig zijn met Azure en Office 365.
Docker Desktop installeren op je machine en dan is het gewoon full-featured Docker. Docs staan op https://docs.docker.com. Ik zou niet weten wat er niet is gedocumenteerd.
Denk er alleen om als je zoiets doet dar je de licentie voorwaarden van Docker Desktop goed checkt. Docker Desktop zelf in namelijk niet open source en de licentie en commercieel gebruik is opletten geblazen.
Klopt, maar voor privégebruik is het niet zo'n issue. Als je bij een (groter) bedrijf werkt, dan is het inderdaad een ander verhaal. Overigens is Docker op Linux gewoon wel altijd gratis te gebruiken.
Je kunt ook Podman overwegen.
zou leuk zijn als ik ze via docker of WSL
Sleutel woord: "via".

Het gaat ook niet om Docker zelf, maar om de containers. Even lezen. Zoals ik al had gezegd, als je dan toch gaat virtualiseren, waarom niet bij Hyper-V blijven? Dan heb je dat hele gezeik van je container onderhouden en een virtuele software laag op een virtuele hardware laag niet. Gewoon alles in een hypervisor, is vaak ook veel sneller en efficienter.

Buiten dit alles om, het hele ding van docker is dat een project een container kan aanleveren die jij als gebruiker zonder gezeik kan draaien. Nu zeg jij tegen mij dat ik zelf mn eigen containers moet gaan bouwen, ik heb wel beters te doen met mijn tijd en is tegen het idee van docker. Als ik daarmee bezig ga zijn dan blijf ik wel lekker bij de huidige situatie die even veel moeite is en waarschijnlijk beter werkt.

Maar nogmaals, lang niet elke container werkt out of the box, vooral als er python zit in de mix wil het wel eens helemaal verkeerd gaan. Dat is niet erg, gewoon een kwestie van tijd en moeite erin steken om het goed te maken. Daar heb je een community voor.

[Reactie gewijzigd door TechSupreme op 23 juli 2024 03:37]

Het gaat ook niet om Docker zelf, maar om de containers. Even lezen. Zoals ik al had gezegd, als je dan toch gaat virtualiseren, waarom niet bij Hyper-V blijven? Dan heb je dat hele gezeik van je container onderhouden en een virtuele software laag op een virtuele hardware laag niet. Gewoon alles in een hypervisor, is vaak ook veel sneller en efficienter.
???

Hyper-V heeft vele malen meer overhead dan WSL, en Docker draait tegenwoordig prima op WSL.
Je wil gewoon iets waarvan juist de keuze is gemaakt om daar vanaf te stappen; de eerdere versies van Docker in Windows draaiden op Hyper-V, maar WSL is gewoon objectief gezien de betere optie.

Ik ben nog geen container tegengekomen die niet in WSL werkt nadat WSL eenmaal goed is opgezet (qua networking e.d.)
WSL2 is gewoon een Hyper-V container waar Ubuntu op draait met een Microsoft smaakje. Dus wat je zegt klopt gewoon niet. Als je een moderne processor gebruikt met alle hardware virtualisatie en beveiliging ingeschakeld is de resource overhead nagenoeg bijna 0.
Het grote verschil is dat WSL2 alleen de minimale Hyper-V toolkit gebruikt om de linux kernel te virtualiseren, de rest niet.
Als je het verschil tussen virtualisatie en containers niet snapt raad ik je aan om je eerst daar even over in te lezen voor je in discussie gaat, want je mist gewoon kennis. Er is wel degelijk flinke overhead in virtualisatie, ook bij moderne processoren, vergeleken met containers waar alleen de kernel gevirtualiseerd wordt.

Hoe dan ook, het correcte antwoord is vrijwel altijd om een losse Linux server te gebruiken om Docker op te draaien, vrijwel alle tooling ondersteunt dat en uiteindelijk ga je toch in productie op Linux als je Docker gebruikt. Containers bieden zo enorm veel voordelen dat het een beetje absurd is om die teniet te gaan doen door er expliciete VMs tussen te zetten.
Hyper-V is Hyper-V. Als ik in performance manager kijk gebruiken WSL en een Ubuntu vhd install nagenoeg hetzelfde qua geheugen en CPU. Dat er een minimale Hyper-V tookit bestond wist ik niet, heb je daar links naar. Zover ik weet downloadt Powershell gewoon een Ubuntu vhd die via Hyper-V wordt gedraaid er is niks minimaals aan.
De “beperkte toolkit” heet Virtual Machine Platform, wat een subset van hyper-v is. Dit is wat je nodig hebt voor WSL2. (Hyper-v is niet beschikbaar voor Home edities van Windows, waar WSL2 dat wel is :) )
https://github.com/MicrosoftDocs/WSL/issues/899
In dit issue wordt het benoemd. (De issue zelf heeft niets te maken met deze discussie overigens ;) )
Het idee van Docker is juist dat er veel images zijn die gewoon werken. Ik draai hier 25 Docker containers op mijn NUC en daarvan zijn er slechts 3 zelf gemaakt en de rest zijn gewoon standaard images. Daarbij hoef je bij Docker enkel het host OS up-to-date te houden. Bij Hyper-V draait in elke VM een heel OS. Docker containers hebben veel minder onderhoud nodig dan een VM.
[quote]hoef je bij Docker enkel het host OS up-to-date te houden. Bij Hyper-V draait in elke VM een heel OS.[./quote]

Als je gewoon server manager gebruikt dan valt dat alles wel mee. Of dacht jij dat ze in een datacenter al die duizende servers handmatig up to date houden?
Ik denk dat heel veel mensen vast zitten in het VM gebeuren en liever overal VMs voor gebruiken. Maar feit is dat je een extra OS te onderhouden hebt. Daar kan je ook weer iets voor inrichten natuurlijk, maar als je dat OS niet hebt dan is dat gewoon minder werk. Daarbij moet je ook in de gaten houden of de combi van je distro en de te draaien software wel matcht.

Een VM heeft zeker zo zijn functie, maar ik zie mij niet 25 verschillende VMs draaien op mijn NUC voor de verschillende taken. Met Docker doet die dat met gemak. Als er een nieuwe versie van de software uit is, dan pull ik die versie en dan kloppen alle dependencies en draait het binnen een minuut in de meeste gevallen.
We hebben het hier over 2 verschillende dingen. Jij hebt het over jouw eigen situatie. Ik heb het over docker op WSL2 in een productie omgeving.
Waarom zou je docker op WSL2 in productie draaien en niet direct op een Linux host?
Lees even na, ik draai nu ook Ubuntu in een Hyper-V container. Mensen hier geloven blijkbaar niet dat WSL2 en Docker in een productie omgeving voor problemen zorgt. Als je Ubuntu in Hyper-V draait en dynamic allocation aanzet dan neemt die Hyper-V niet eens zoveel resources in beslag als ze niet nodig zijn dus kan je meerdere hosts naast elkaar draaien. Dan heb je ook geen docker meer nodig en kan je de applicatie gewoon op de host zelf draaien.
Als je Ubuntu in een Hyper-V container draait, dan gebruik je geen WSL2 meer.

Ik kan me best voorstellen dat je een Hyper-V omgeving hebt draaien met daarin een aantal Windows servers. Op de Hyper-V omgeving draait ook Ubuntu server die dient als Docker host. Dat zie ik ook wel eens bij wat kleinere bedrijven die een aantal on-premise servers hebben draaien. Maar dan gebruik je dus geen WSL2, omdat Docker direct op de Linux VM draait.
Mijn situatie (ontwikkelaar op Windows die ook nodige Linux werk doet) is ook de reden waarom WSL2 is gemaakt. WSL2 is helemaal niet bedoeld voor productieomgevingen, maar meer voor developer loads. Als je in productie Docker wilt draaien dan is een compacte Linux distro veel eenvoudiger. Noem eens één reden waarom je Docker op Windows zou willen draaien in productie?

Ik vind het handig, omdat ik voor mijn werk ook een aantal Windows toepassingen moet onderhouden (wordt wel steeds minder) en daarom Windows moet gebruiken. Maar ik kan heel eenvoudig met WSL2 de meeste overige ontwikkeling doen.
Niemand draait docker op WSL2 in een productie omgeving.
Zou leuk zijn als ik ze via docker of WSL kon draaien dan heb ik die hele Hyper-V en Ubuntu management overhead niet.
WSL2 is gewoon een VM die draait in Hyper-V net zoals docker dat doet. Jij denkt aan WSL1 waarbij het nog een compatibility laag was bovenop de Windows kernel, maar daar is men grotendeels vanaf gestapt.

[Reactie gewijzigd door Armada651 op 23 juli 2024 03:37]

Ik heb ook jaren WSL2 gebruikt.


De recente opdringerigheid van Microsoft met reclame en het ongevraagd mijn home directory verplaatsen via geforceerde One drive installatie waren voor mij de druppel.

Ik gebruik nu nog een gestripte versie van Windows op 1 machine maar ik neig er naar die ook te vervangen door Linux.

Docker Desktop en WSL:

Docker desktop:
-heeft best wat overhead . Docker-ce is lichter.
- is irritant met het mounten van folders. Je folders komen uit in de Docker vm. Met wat gedoe kom je wel uit in je Windows homedir
- rechten issues met sommige b.v. full red-hat docker image. Gebruikt voor testen van Ansible roles met Molecule

Daarnaast:
- systemd draaien kan niet standaard op Windows 10. Prive gebruik ik al langer 11
- Linux 6.8 kernel bestaat al een tijdje
-WSLg werkt nog niet lekker met b.v. Intellij
- ssh vanuit je WSL naar je host is lastig vanwege steeds wijzigende ip adressen. Het zou zo handig zijn om vanuit WSL je Windows host te beheren met Ansible.
- Ik had een combinatie van Powershell en Ansible om heel snel WSL Debian images in te richten. Helaas werkt dat niet mee.
https://hanskruse.eu/post...ow_away_wsl_environments/
De spullen staan gearchiveerd op GitHub voor de liefhebbers.
Anoniem: 80910 @nicenemo23 maart 2024 12:16
Je kan op je router wellicht het ip semi statisch maken. Met Docker desktop en mounts op Windows heb ik ook last. Na een reboot doet de container niet meer omdat ie zn mount kwijt is. Simpel de mount verwijderen, kan niet, want zegt in gebruik. Dus container verwijderen, herstarten, Docker volume rm en daarna de container opnieuw builden. Ik los het op door Windows update een maand uit te stellen en mijn laptop always on. Anders ben ik elke opstart 2x aan het rebooten en de container aan het builden. Bug melden op Github, wordt je van het kastje naar de muur gestuurd, dus laat maar ...
gaat om de ip adressen die WSL verzint voor communicatie op de laptop naar de windows host. Mijn router heeft hier niets mee van doen.
Anoniem: 80910 @nicenemo23 maart 2024 17:44
Volgens mij kan dat via een wsl config file...
Docker Desktop installeren en een Nginx of Apache2 image gebruiken en je kan elke webapp draaien die je wilt. Daar heb je echt geen VM meer voor nodig.
Docker Desktop, WSL2 etc op Windows draaien allemaal een volledige VM met Linux erin. Dus je hebt wel degelijk een VM nodig, of je het ziet of niet.
Eén subset van Hyperv voor alle containers die je draait, is iets anders dan verschillende VM's met Ubuntu maar dat hoef ik je vast niet uit te leggen.
Ik draai oa de Stability AI met ComfyUI webserver/webinterface in WSL2 incl graphic card support NVidia. Werkt echt top.
Ik heb Ubuntu (en Alma, en Kali, en..) via WSL, en draai daar gewoon Docker in, werkt als een tierelier.
Docker werkt toch gewoon? Klinkt meer dat je niet goed overweg kan met Docker dan een wsl probleem...
Eerlijk gezegd ben ik het er wel mee eens. Docker Desktop is niet echt geweldig, het werkt veel beter onder Linux of Mac.

Er is wel meer open source software die niet lekker onder Windows werkt, of allerlei issues kent die niet worden opgelost voor dit platform. Vooral Python libraries werken vaak niet mee, waarschijnlijk besteden devs gewoon niet genoeg aandacht aan Windows. En dat is jammer, want dan houdt men de kloof ook in stand.
Er is m.i. voor de meeste open source software die geen desktopervaring voor eindgebruikers hoeft te bieden ook weinig meerwaarde om Windows nog apart te gaan supporten zolang Docker en WSL een ding zijn. Als je toch al op Linux moet draaien, kun je net zo goed ook op Linux op Windows gaan draaien, in plaats van dat je nog eens apart moeite moet steken in draaien op Windows (wat echt wel een heel ander OS is dan de diverse smaakjes Unix). Je raakt wat perf kwijt natuurlijk maar dat is meestal nog goed te doen. Ga je het immers live deployen dan draait het hoogstwaarschijnlijk toch wel op een Linux VM en/of container ergens, hetzij Kubernetes hetzij de cloud.

Zeker specifiek met Python is deployment gewoon een drama, zelfs als je met virtual environments aan de slag gaat. Je hele Python-plus-native-libs opstelling "gewoon" in een container proppen en die dan draaien heeft een stuk meer kans om niet bij elke update stuk te gaan. En als je toch al aan de container moet, dan heb je het natuurlijk al over Linux.

[Reactie gewijzigd door MneoreJ op 23 juli 2024 03:37]

Docker Desktop op Windows en MacOS werken volgens hetzelfde principe. Er is ergens een Linux VM die als host fungeert voor je docker images. Op windows wordt tegenwoordig WSL2 gebruikt en dat werkt sinds de overstap daarop eigenlijk feilloos. Verder heb je op Windows nog een extraatje; je kunt daar ook nog Windows-based docker images draaien. Dat kan op de andere OS’en niet.

Docker zou wel het beste werken op Linux omdat je daar natuurlijk je eigen Linux kernel kunt inzetten. Dat heb je nodig om Linux based docker images te kunnen draaien, wat 99% van de images is. En omdat je geen Linux-kernel in MacOS en Windows hebt zitten, is daar dus een VM nodig
Waarom denk je dat ik niet met Docker overweg kan?

Voor mijn werk heb ik serieus wat dingetjes met Docker gedaan voor +6 miljoenen gebruikers.
Daarbij ook custom Ansible playbooks en Ansible roles gemaakt die met Molecule getest werden in WSL.
En daar loop je met Docker Desktop en WSL standaard tegen een aantal belemmeringen aan, o.a. cgroups en systemd. Maar dat weetje als Docker expert vast ook eenvoudig op te lossen?

Thuis heb ik op dit moment een redelijke lading met docker-compose en ansible geconfigureerde containers in een Proxmox LCX container draaien.

Als je docker-ce in WSL draait is het allemaal wat energie zuiniger.
Als Je Docker Desktop op een Microsoft Surface laptop draait wordt die erg warm. Met docker-ce is het te doen. Op de Thinkpad bij mijn vorige werkgever was dit veel minder een issue.

Docker CE iin WSL is vooral simpeler simpeler. Vooral simpeler om uit leggen aan mede ontwikkelaars die wat minder feeling met of interesse in Docker hebben.
Zoals ik aangaf werken loopmounts niet vanuit WSL, de mounts komen namelijk uit in de Docker VM.
Althans de laatste keer dat ik keek.

Op dit momen doe ik meer met Kubernetes. De bovengenoemde Proxmox omgeving ben ik nu aan het vervangen door TrueNAS met K3S kubernetes. Deze is veel eenvoudiger te beheren.
Draai je heel bijzondere dingen? Want je kan altijd gewoon vanuit een Ubuntu image vertrekken, beetje apt-get, beetje pip install in een dockerfile (chatgpt is goed in die te schrijven) en je kan al zotte dingen doen?
Met Molecule Ansible testen gebruik je b.v. een Docker image met eeen fullblown redhad installatie. Dat kan wat problemen geven.

Daarnaast zoals eerder aangegeven, als je loopmounts voor data of config wilt gebruiken, komen die uit in een directory van de Docker Desktop VM.

Ik gebruik geen Ubuntu maar Debian: meer standaard deb i.p.v. al dat flatpak gedoe.
Heb Docker, Kubernetes clustertje in die Docker, IntellieJ etc gewoon zonder issues in WSL2 draaien. Werkt alsof ieder andere Ubuntu installatie. Docker Desktop op Windows is ook niet nodig. Weet niet welke community support je zoekt, maar alles Linux draait er prima op. Inclusief X forwarding out of the box (op Windows 11).
Sowieso is docker desktop niet nodig als je docker wilt doen. Je kan gewoon podman gebruiken en van alle licentie-geneuzel wegblijven. Zeker zakelijk is podman in WSL2 de betere keuze.
Dan is het geen Docker meer ;) . Maar zijn het gewoon OCI containers :P
Kudo's naar Microsoft, ik vind Windows Server en Windows 11 echt super om mee te werken. Jammer dat ze dan zo opdringerig zijn met Azure en Office 365.
Alsof Windows11 niet opdringerig is, zoals met het pushen van een Microsoft-account en onuitschakelbare telemetry. Verder is het ondoorzichtig wat er allemaal via tientallen services met de naam svchost gebeurt, om maar iets te noemen.
Microsoft is grote stappen aan het zetten richting een allround OS? Wat heb ik gemist?

Het enige wat ik van MS zie in Windows 10 is dat letterlijk al die herontworpen configuratiepanelen kapot gaan. Het nieuwe configuratiescherm kan ik in mijn reguliere windowsaccount niet gebruiken maar in andere account wel, windows networking denkt al een jaar dat er geen internetverbinding is; en nadat ik een "reset" moest uitvoeren omdat windows update kapot was, was letterlijk binnen 2 dagen windows update _opnieuw_ kapot (w10 22h2), enzovoorts. Het is echt bizar waar ze allemaal mee wegkomen.
Blijkbaar heb je windows 11 gemist dat al 2.5 jaar uit is...
niet gemist, geweigerd. Iets met "wat is de toegevoegde waarde"? Ze zetten de trend alleen maar verder door.
Maar issue 6982 staat na bijna 3 jaar nog steeds open reduceert WSL naar de stabiliteit lager dan die van Windows 95. Ik moet dagelijks WSL geforceerd stoppen op vervolgens alles opnieuw op te starten.
Anoniem: 80910 @elmuerte23 maart 2024 12:27
Ik heb 32 GB geheugen en de vmmem zit op zo'n 6GB, eerder met 16 GB had ik dat ook, wist je dat je het maximale geheugen kunt instellen via een config file voor wsl
Als ik WSL moet herstarten dan is het altijd door een ander programma als vscode en/of dmypy die alle resources opslurpt.
Ja die is irritant. Doet zich alleen voor ná hibernation bij mij. Denk er daarom altijd goed om dat ik eerst Docker Desktop afsluit en dan pas hibernate.
WSL updaten?

PS> wsl --update

of voor de pre-release zoals hierboven beschreven.

PS> wsl --update --pre-release

[Reactie gewijzigd door hvdhelm op 23 juli 2024 03:37]

De standaard update werkt nog niet precies.
Wss nog erns een oude cache
Als het alleen DNS is dan is het probleem niet voor alle VPN's verholpen denk ik.
Global Protect blokkeert al het lokale verkeer (althans bij mijn werkgever).
lees dit eens: nieuws: Microsoft brengt WSL 2 2.0 uit met mirrored-netwerkmodus en IPv6-onde...
Misschien helpt het je om zonder vpn te draaien, dat is hier ieder geval wel de bedoeling van. (mirrored neworkmodus)
Met een bedrijfslaptop heb je niet altijd die keuze. ;)
De nieuwe kernel zet ook CONFIG_HIDRAW and CONFIG_USB_HIDDEV aan zodat je meer devices d.m.v. usbipd kan forwarden e.g. yubikey, debuggers etc
De kernel was al op 5.15. Dit is gewoon een nieuwere versie van 5.15
Ik vind zelf het erg jammer dat WSL alleen via de store of via een (user) appx installatie geinstalleerd kan worden. Ik heb zelf een toepassing bedacht op een Windows 2022 server en helaas kan ik op dit moment alleen de oude feature installatie gebruiken om (vooraf) deze beschikbaar te hebben voor gebruikers.

Je kan de nieuwe WSL installatie wel installeren via Appx echter moet je dan als gebruiker admin rechten hebben (en dat wil je niet). De verbeterde x omgeving zou ik graag toepassen. Ik kan dat nu alleen voor elkaar krijgen via bijv VcXsrv.

Ik hoop dus dat WSL een all users installatie gaat krijgen (dit geldt ook voor Windows Terminal).
Mooie ontwikkelingen. WSL --update

Op dit item kan niet meer gereageerd worden.