I have VMWare VMs that are necessary for me to use. Installing Docker for Windows enables Hyper-V, which prevents you from being able to use VMWare Workstation or Player. In the future, I would like to see Docker for Windows be able to specify which Virtualization platform to use, Hyper V, VirtualBox or VMWare. I know that I could continue to use Docker Toolbox, but that is not the same on Windows 10. I could also install VMWeare Workstation in a VM and run my VMs nested, but that seems like an unnecessary Russian nesting doll of a setup for something that should just be possible. We already have a Workstation driver for docker toolbox. It seems to me that Docker for āXā, windows/mac, should be able to integrate with these drivers and I should be able to deploy my containers with Docker for āXā on any of those platforms, instead of it being tied directly to windows hyper v, or on mac, virtual box.
Perhaps in 1.13. Until then I will have to continue to use Docker Toolbox.
Thanks for your thoughtful post. We recognize this is a limitation of Docker for Windows.
The driver model from Docker Machine doesnāt map cleanly to Docker for Windows because Docker for Windows is more integrated and tightly coupled (eg. we have a networking proxy that relies on hyper-v sockets). This is an unpleasant tradeoff between flexibility vs. consistency and tight integration that lets us try to tackle VPN durability and other common problems with Toolbox.
This issue has been a deal breaker for me as well. I need VMware more than I need Docker for Windows at this point. I do embedded Linux development so I need to run Ubuntu Desktop on VMware in order to drive exotic USB devices (J-Tag debugger, USB to serial adapter, etc.). Maybe I could run Docker for Windows inside a Windows 10 VM running on top of VMware but that seems like a terrible workaround. A button so I can easily turn Hyper-V on or off whenever I want to start or stop Docker for Windows would suffice.
Hanselmanās āNo Hyper-Vā boot menu option is good enough for me. Thanks for the tip!
I have no interest in using VMware or VirtualBox as alternate Docker virtualization backends. Hyper-V is the way to go for containers on Windows as far as Iām concerned.
The absolute worst case running on Windows (any version) is to run Linux in VMware and host your Docker testbed there. This is almost the same as Docker Toolbox except that you get to use VMware Workstation instead of VirtualBox. You can host the docker client (docker.exe) on Windows and point it to the runtime environment.
Truthfully, this may also be the best solution for running on Windows as well.
So is there no way to run Docker on Windows together with either HAXM or Genymotion at the same time?
And, one can only run one or the other, and the way to do that is to reboot between Hyper-V and no-Hyper-V?
I use docker for Windows at the same time of my VmWare, HAXM, Virtuabox VMs !
How ?
I donāt use Hyper-V at all but I install docker using Docker Toolbox that use Virtualbox.
The integration isnāt perfect, but that do the job.
Letās retell the story.
In the beginning of 2000s Microsoft did not manage to buy VMWare (VMWare was resistant to the āofferā, probably fearing that their innovative ideas would be killed by MS management), so instead MS bought Connectix and started virtualization adventure with Virtual PC (a magnificent piece of cr*p - it could not run a 64-bit OS on a 64-bit OS physical host), which then morphed into Virtual Server (I used it for a few years) and subsequently into Hyper-V, which - finally, growing simultaneously as VMWare products did - became a kind of of a competition for it. Except that MS has been doing the same thing as with IE and other Web browsers - once you enabled HyperV, you couldnāt run VMWare and vice versa. There was a period of time in 2nd part of 2000s when I could run MS Virtual Server and VMWare Workstation side by side on the same Dell server. Not anymore.
As of Nov 30, 2018, the Docker problem on Win 10 with using simultaneously Windows and Linux containers is not resolved.
The worst case (albeit working) is to dual boot from 2 OS boot installation (Windows 10 or Linux), where one allows Windows Containers, and the other allows Linux containers. Assuming your demo/PoC doesnāt require these 2 environments to be connected at the same time.
Frankly, using Docker under Win 10 isnāt making the product any favors, just the opposite. For comparison, MySQL with MySQL Workbench CE on Windows is phenomenal. Docker on Win 10 is an afterthought and treated by the Docker team like an orphan.
This was an use for me as well. I ended up installing Docker in an Ubuntu 1804 VM. I nor anyone on my team has run into issues running docker like this. We use a container to build our solution and run it. Ironically the container is Centos 7. So I have three layers of OSās between the code and the HW and havenāt run into issues yet. Not ideal if you really like Visual Studio to develop but Visual Studio Code is pretty useful.
Not sure I would say āorphanā. More like something infected by the plague, beaten half to death and shoved out in the cold, never to be seen again.
My Windows-Docker experience:
Hyper-V NAT-ing is useless
Network often has to be set up manually
Sharing of drives (if using hard volumes) does not work with several common letters. For instance having a ā-ā in your user name is a disaster.
Because of interference between Hyper-V and WMWare, virtualization might break (have had two cases where it crashes windows beyond repair)
I look forward until RH is done with alternative for containerization. If it works properly on Windows, the choice is simple.
What I got to work, was Ubuntu inside Virtualbox on a Win10 machine.
I sit on Windows developing, and use Ubuntu (and usually CentOS 7 inside a docker container) to build and test. I shared the project folder inside Virtualbox image so it is actually very straight forward
VMware is working with Microsoft to fix this. Iām not sure when it will be released, but it looks like the next version of Workstation should be able to run with the MS Hyper-V enabled.