Docker for Windows won't install because I don't have Hyper-V, but Docker Toolbox won't run because I have Hyper-V

I’m using Windows 8.1 and Docker 18.09. I tried installing Docker for Windows and got an error saying I’m not running Windows 10, and I need to in order to use Hyper-V. Now I’m pretty sure I’ve run Hyper-V on Windows 8 before, but I figure what the hell do I know, right? So I go and do the suggested alternative, which is install Docker Toolbox. It installs without error, but after trying to run the quickstart terminal, I get this error:

Running pre-create checks…
Error with pre-create check: “This computer is running Hyper-V. VirtualBox won’t boot a 64bits VM when Hyper-V is activated. Either use Hyper-V as a driver, or disable the Hyper-V hypervisor. (To skip this check, use --virtualbox-no-vtx-check)”

What’s the best way to solve this?


Check this link out, it appears to be your problem.

Unless I’m misunderstanding, that guy’s solution was to just use Docker for Windows, which I cannot do.

I think you are confused. And it is very confusing.

Hopefully this will help explain.

1). Docker Desktop for Windows requires Windows 10 and Microsoft Hyper-V.
2). You are running Windows 8.1, so you need to run Docker Toolbox.

Now read this carefully.

1). Microsoft Hyper-V is an optional hypervisor-based virtualization technology feature for certain x64 versions of Windows (which includes Windows 8.1).
2). Docker Toolbox uses Oracles’s hypervisor-based virtualization technology which is called Virtualbox.
3). VirtualBox cannot be used with Microsoft Hyper-V (the 2 products conflict with each other).
4). Your Windows 8.1 machine is currently running Microsoft Hyper-V.
5). So you need to disable Microsoft Hyper-V on your Windows 8.1 machine.

Go to this link below. It has instructions to turn off Microsoft Hyper-V for many different Versions of Windows.

That does help considerably, thank you. But just to clear up, Docker for Windows requires Windows 10 for reasons unrelated to Hyper-V?

Yes, that is correct.

Side note (sorry, this does not add any value to your solution):

I assume you mean Hashicorp’s Vagrant. It is capable to orchestrate different providers (virtualbox, hyperv, aws, vmware workstation, esxi and many many more) and run different provisioners (bash, ansible, chef, puppet and many many more.

Actualy, Vagrant is able to use hyperv as a provider, but the user experience is terrible compared to virtualbox.

Virtualbox itself is developed and owned by Oracle (if you don’t install the extensions it is even free for corparate use, unbelievable that ORACLE gives away things for free cough).

1 Like

Yes, Metin, thank you.

Docker Toolbox uses Oracle’s Virtualbox which is the hypervisor-based virtualization technology used by Docker Toolbox.

There is another similar post here for the same problem.

In that post they mention the bcdedit command to disable Hyper-V

To disable Hyper-V in order to use VirtualBox, open a command prompt as administrator and run the command:
bcdedit /set hypervisorlaunchtype off
You’ll need to reboot, but then you’ll be all set to run VirtualBox. To turn Hyper-V back on, run:
bcdedit /set hypervisorlaunchtype auto
and then reboot.

Now where i see your post, there is an even nicer possiblity :slight_smile:

If you follow this guide, you end up with an additional boot entry to select wheather you want to boot with hyperv enabled or disabled:

I used it on Windows 8.1 and am using it on Windows 10.

1 Like

I have seen news of running Docker Dekstop on WSL2 on windows, where they are using a different mechanism other than Hyper-V to run docker containers on windows as they are run through the WSL 2 (ubuntu on windows
thing). I wonder whether as this develops we will be able to run Docker Desktop in parallel with Oracle VM Box without any problems.

I read somewhere that hyper-v may be required as running Docker Desktop on WSL2.0 is experimental, but apparently the plan to do away with the Hyper-V when its fully ready.

For further reading

After I install Docker ToolBox This message appeared :
Looks like something went wrong in step ´Checking status on default´