Docker support for Windows has several variants:
-
Docker Toolbox which includes Docker Machine that will spin up a boot2docker image inside of VirtualBox. These are Linux containers running with a Linux kernel inside the VM. This was originally the only option for Windows users.
-
Docker for Windows using Hyper-V to run the Moby VM, based on LinuxKit, to run Linux images. LinuxKit provides a container based Linux OS, and there’s some integration to make it appear less like a VM to the end user, e.g. you can use 127.0.0.1 instead of the IP of the VirtualBox VM. If you have Hyper-V available and want to run Linux containers on Windows, this is the preferred option.
-
Windows Server Containers which run Windows binaries on the same host OS, similar to how Linux containers on a Linux OS do not need a VM.
-
Hyper-V Containers which run Windows binaries inside of a separate VM for additional isolation.
You can read more about the latter two options in Microsoft’s docs.
What’s important to note is that when you install Docker for Windows on a supported server, like 2016, you have options 2, 3, and 4, that you can toggle between. For Linux and Windows containers, there’s a switch in the settings that affects all running containers and commands. And between Windows Server Containers and Hyper-V containers, there’s an --isolation
option on the docker run
command line. So I believe you’re required to have Hyper-V support to cover 2 and 4 even if you only want option 3.