docker / for-win

Bug reports for Docker Desktop for Windows
https://www.docker.com/products/docker#/windows
1.85k stars 289 forks source link

Docker/Docker-Machine Paradox (Windows BSOD) #848

Closed noncreature0714 closed 7 years ago

noncreature0714 commented 7 years ago

Expected behavior

Docker for Windows required Hyper-V enabled in BIOS.

However, following these Docker Docs instructions, and running these Docker Machine Commands should work. $ docker-machine create --driver virtualbox myvm1 $ docker-machine create --driver virtualbox myvm2

Actual behavior

Docker-Machine will not start VM with virtualbox PS C:\Users\<me>> docker-machine create --driver virtualbox myvm4 Running pre-create checks... Error with pre-create check: "This computer is running Hyper-V. VirtualBox wo Hyper-V hypervisor. (To skip this check, use --virtualbox-no-vtx-check)"

BSOD (Blue Screen of Death) when attempting to start a virtual machine via VirtualBox.

Information

Docker-CE (Windows Edition) on Windows 10 requires that Hyper-V is enabled in BIOS (and again via Control Panel).

Virtualbox, which Docker-Machine uses, crashes Windows per a long-time, known bug running VirtualBox with Hyper-V enabled.

This means if Docker-CE (Windows Edition for Windows 10) is running, then Docker-Machine cannot run because VirtualBox is a blocker, because of the inability to run with Hyper-V; and vice-versa. So if one is running, the other cannot, yet they should be able to run together.

I have not tested Docker-EE.

I believe this issue is related to:

docker -v: Docker version 17.03.1-ce, build c6d412e docker-machine -v: docker-machine.exe version 0.10.0, build 76ed2a6

I have filed a separate Documentation Issue to update the Docker Docs.

Steps to reproduce the behavior

  1. run docker-machine create --driver virtualbox myvm1 on a Windows 10 Machine with Hyper-V enabled
  2. it will not work
friism commented 7 years ago

You have to use the hyper-v driver - this is detailed in the doc:

docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm1

image

noncreature0714 commented 7 years ago

@friism Updating issue as I go, cautiously, so I don't BSOD in the middle of updating. docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm3 must be run as administrator (at least in PowerShell).

noncreature0714 commented 7 years ago

@friism I'm having trouble reproducing the bug, I've crashed my Windows computer 3 times now when trying to run Virtualbox (and Docker together with virtualbox), with no success, but now it's working perfectly. I'll close this, and my other bugs, if I can't reproduce in 24 hours.

noncreature0714 commented 7 years ago

@friism (apologies for copy/paste, but I thought you should know... ) the Hyper-V instructions work.

This was particularly frustrating, because I wasn't able to complete a Docker demo to my internal clients because of crashes. I'm strongly advocating for Docker to internal operations/dev/IT clients, while at the same time as learning SaltStack (which uses Vagrant for tutorials). So I'm realizing now this isn't as clear cut as I thought it was.

The best I can tell right now is that there was some conflict with running Vagrant and docker-machine in proximity on the same host. Vagrant absolutely causes BSOD because of a bug in VirtualBox. And it's possible that when I ran docker-machine afterwards there was still some unresolved issue on the host. I'm currently working to reproduce. Either way, this looks very much like an edge case.

noncreature0714 commented 7 years ago

@friism @jasonbivins I'm closing this ticket as un-reproducible. It appears it has something more to do with Vagrant.

docker-robott commented 4 years ago

Closed issues are locked after 30 days of inactivity. This helps our team focus on active issues.

If you have found a problem that seems similar to this, please open a new issue.

Send feedback to Docker Community Slack channels #docker-for-mac or #docker-for-windows. /lifecycle locked