Discussion on: Developing like a pro, on Windows

lietux profile image
Janne "Lietu" Enberg Author

So I've actually been trying Hyper-V a fair bit in the past month or so, and well.. Initially I was kinda happy with it, it seemed like things were working great, and there were a few neat features I didn't have on other systems, but things did not stay all that good.

Even though there's been big claims made that VirtualBox 6 fixes compatibility with Hyper-V, turns out nobody actually thinks this in practice. VirtualBox community itself only suggests disabling Hyper-V as a solution to the compatibility issues that crop up, Microsoft pretends the problem doesn't exist and ignores questions regarding this.

When you have Hyper-V enabled, you cannot launch VirtualBox VMs, when you try to launch VMs on Hyper-V, they don't work as well. I have to this day been unable to launch the most basic desktop Linux distro's live DVD image with Hyper-V, and it's becoming a significant blocker for my daily activities that I can't use virtualization the way I need and I'm about to disable Hyper-V from all my computers again.

If you know for a fact that you will never need to launch a custom Linux VM and just use the couple of things that are known to work on Hyper-V like Minikube and Docker desktop, then yes, it works. If you want anything else, you should still stay far away from Hyper-V.

Thread Thread
ferxohn profile image
Fernando Gomez Perera

I haven't seen your last reply until now.

Since we started this conversation a year ago, I left Hyper-V completely in favour of VirtualBox, and it was the best decision I could make.

In fact, thanks to your article I started using almost all of the tools and tricks you mentioned (I'm still learning how to use the other ones for my daily work), and my life got easier.

Recently I was considering on giving a try to the new WSL2 to use the new integration with Docker Desktop, because some configurations inside Docker Toolbox sometimes are difficult to achieve. So that's why I returned to your article, and after reading your last reply I came to the conclusion that maybe it isn't worth the effort.

WSL2 sounds cool, but it's even more frustrating to enable and disable Hyper-V every time for being able to use other tools like Vagrant. Also, I've discovered that Hyper-V was in fact affecting the performance of my computer while gaming, so that was another reason for me to switch to VirtualBox.

Maybe I would give WSL2 a try when the GPU compatibility arrives (most of my work is related to Data Science, so that's why I'm curious about it), but for now I think it's better to stick with VirtualBox, and I'm not disappointed at all: It works amazing, it's easier to create new environments with Vagrant and erase them while maintaining the Vagrantfile for future references, and VirtualBox doesn't consume resources when you don't use it. I've also read that the integration with Hyper-V really sucks, and that maybe it will never change.

Thanks again for your comments! They are still very helpful.

Thread Thread
lietux profile image
Janne "Lietu" Enberg Author

I just recently spent some time optimizing things for myself, and ended up setting up Linux with Dockerd server on another machine accessible in my LAN, which boosts my docker build times massively, halving the time it takes for me to test my docker builds compared to me running Docker via minikube with minikube docker-env, and solves all my issues with port forwarding and forgetting to run minikube start or minikube docker-env in the active shell etc. as well.

I wish there was a better way, but as long as Docker insists on primarily supporting Hyper-V on Windows, Microsoft insists on WSL2 using Hyper-V, and making Hyper-V have all these very unwelcome issues, it seems there is not .. but either way, I'm pretty happy with how things are now, faster builds, no Hyper-V to poison my system 😄