For many years in a row I used to have a VirtualBox machine where I concentrated all my development tools.

But now with Windows 10 much more stable than previous versions and docker fully available to create development containers, I decided to switch back to Windows + WLS (Windows Linux Subsystem) + Docker for my development stack.

I can keep most of the environment configuration in a version control system and in case I need to change to another machine, it would not be so time consuming.

Docker on Windows requires you to enable Hyper-V, that is a virtualization platform include in Windows. When you install Docker on Windows it will ask you to do so and warn that your VirtualBox virtual machines will stop working.

Docker complaining that Hyper-V feature is not enabled
Image: benfi.ca

The problem is that I needed to have both in order to do the transition. I need to be sure that I ported all services that I had in the virtual machine to the Windows Linux Subsystem.

You can install Docker Toolbox in order to run both at the same time or take a different path: enable and disable Hyper-V when you need each technology!

I decided to follow the former.

To use Docker, enable Hyper-V

# Run from elevated prompt (admin privileges)
bcdedit /set hypervisorlaunchtype auto

To use VirtualBox again: disable Hyper-V.

# Run from elevated prompt (admin privileges)
bcdedit /set hypervisorlaunchtype off

Unfortunately, you’ll need to reboot your machine every time you run this command.