DEV Community

Discussion on: Developing like a pro, on Windows

Collapse
 
ferxohn profile image
Fernando Gomez Perera

Hello!

I really loved your article!

Personally I use Windows because I simply like it, and also because all of the things that I can't do very well on Linux like gaming or using software like Tableau. And it's amazing that it's not necessary to give up some of the excellent things that Linux offers just because we use Windows thanks to tools like Scoop.

One question: I've been using Docker for Windows with Hyper-V for few months, and I haven't had any problem with other software (apart from the fact that it's not possible to run other hypervisor software at the same time). I also have a lot of games installed on my computer, and I tend to play them randomly.

I'm curious: What kind of problems did you have with Hyper-V? In fact, I feel that Hyper-V runs better than VirtualBox in general.

Thank you :)

Collapse
 
erebos-manannan profile image
Erebos Manannán

I've not had the patience to try Hyper-V in ages because it had compatibility issues with everything I actually needed. I'll probably need to give it another go at some point in the near future on one of the computers which has less importance to me.

Collapse
 
ferxohn profile image
Fernando Gomez Perera

I tried to use Ubuntu with Hyper-V few years ago and it was enough for me to gave up Hyper-V completely in favor of Virtualbox for many years. But when I tried the new optimized version of Ubuntu for Hyper-V and started to use Docker, I ended up using it again. So you can give it a chance.

I still don't try to use other Linux distribution with Hyper-V, but I'm thinking seriously to try it and see if Hyper-V is truly better now or not.

Thread Thread
 
erebos-manannan profile image
Erebos Manannán

Well I'm not particularly interested in running anything directly with Hyper-V, as mentioned I care about compatibility and I need VirtualBox for compatibility with other teammates regardless of if they're on Win, Lin, or Mac.

The only two things that I can imagine I might benefit from with Hyper-V is the potential improvements with WSL2 (but I so rarely use WSL anyway that I'm not particularly excited about it), and possibly better or possibly worse Docker experience (Docker Toolbox for Windows works just fine, as does minikube).

I can imagine a lot of potential issues with it though due to the way it's been implemented so I'm not really particularly excited about trying it out, and Microsoft's own acknowledgements sound quite worrying:

Hyper-V limitations

Thread Thread
 
ferxohn profile image
Fernando Gomez Perera

Interesting 🤔 I didn't considered that. Now I understand why you don't want to use it.

Maybe I'm the one who needs to try Docker on Virtualbox after all.

Thank you so much for the information 😊

Thread Thread
 
erebos-manannan profile image
Erebos Manannán

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
 
erebos-manannan profile image
Erebos Manannán

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 😄