Why it is worth to upgrade your Windows 10 soon?
Short answer is WSL2 (Windows Subsystem for Linux v2).
WSL v2 details
- WSL v2 utilizes virtualization functions and runs full Linux kernel tuned specifically to execute under WindowsNT kernel virtualization (WSL v2 Linux Kernel)
- no more LinuxWindows NT kernel translation layer (WSL v1)
- no more incompatible Linux apps in WSL v2 environment (= no more “problematic” LinuxWindows NT kernel system call translations)
- WSL v2 can easily run (Linux) docker and potentially any other Linux app you may imagine
- 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. - WSL (v1/v2) integrates nicely with VSCode through “Remote Development” extension pack giving you great development Linux environment on Windows :-)
- 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”
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!