Why it is worth to upgrade your Windows 10 soon?

Short answer is WSL2 (Windows Subsystem for Linux v2).

WSL v2 details

  1. WSL v2 utilizes virtualization functions and runs full Linux kernel tuned specifically to execute under WindowsNT kernel virtualization (WSL v2 Linux Kernel)
  2. no more LinuxWindows NT kernel translation layer (WSL v1)
  3. no more incompatible Linux apps in WSL v2 environment (= no more “problematic” LinuxWindows NT kernel system call translations)
  4. WSL v2 can easily run (Linux) docker and potentially any other Linux app you may imagine
  5. I/O operations in WSL v2 (comparing to WSL v1) are significantly improved. Typically you should see 5-6x I/Os boost. For example installing Python 2.7 in WSL v1 Ubuntu distro (sudo apt install python -y) takes circa 1m 25 seconds in WSL v1 comparing to 14 seconds in WSL v2 Ubuntu.
  6. WSL (v1/v2) integrates nicely with VSCode through “Remote Development” extension pack giving you great development Linux environment on Windows :-)
  7. WSL is available on Windows 10 Home edition and Hyper-V is NOT

(Regular) Docker Desktop on Windows has built-in experimental support for WSL v2. They already say that utilizing WSL v2 instead of Hyper-V gives noticeable performance gain.

WSL v1 and WSL v2 architecture comparison

“A picture is worth a thousand words”

Windows Subsystem for Linux v1 - architecture Windows Subsystem for Linux v2 - architecture

WSL v2 prerequisites

  • Windows version 2004+ (Build 19041+) - available in upcoming 2-3 weeks
  • support for virtualization (SLAT)

Installation steps

If you have already installed WSL v1 with:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

the extra thing you need is “Virtual Machine Platform” Windows feature. So install it with:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

and you are almost ready to go.

WSL subsystem default and conversion

wsl --set-default-version 2

will set WSL v2 as default version in your host system

wsl -l -v

will list your all WSL v1/v2 images available

wsl --set-version <image_name> 2

will convert your WSL image to v2. You may convert it back to v1 replacing argument “2” with “1”.

So now you should be able to run Docker on Windows 10 Home without third party hypervisors such as VirtualBox. Enjoy!

Potential troubles

WSL v2 depends on Microsoft hypervisor, so you can NOT run another third party hypervisor, such as VirtualBox, at the same time.

GPU, serial or USB devices will not be visible under WSL v2 guest system. Microsoft is working on that so we can expect improvements.

Conclusion

WSL v1 is NOT deprecated - you may still use it.

Now you should be able to run performant Docker solution on Windows 10 Home without third party hypervisors such as VirtualBox. Enjoy!

More resources

Address

T24 Competence Centre sp. z o.o. sp. k.
Okopowa 56/33
01-042 Warszawa, mazowieckie
Poland

Registry details

KRS0000673252
VAT#PL5272804525
REGON367033759
PEN by IANA1.3.6.1.4.1.55225

Phone

+48222428165