Docker is available in three tiers:
- Docker Engine - Community (aka Docker CE) - > Runs on Windows Client (Windows 10 and other client OSes)
- Docker Engine - Enterprise (aka Docker EE) -> Runs on Windows Server ( Long Term Service Channel (LTSC) - 2016 and 2019 (Core and GUI), Semi-annual Channel (SAC) - 1709, 1803 and 1809 and Linux server OSes)
- Docker Enterprise (aka Docker EE with licensing) -> Same as Docker EE with Enterprise licensing
Windows Containers can run in two isolation modes: Process (which is similar to Linux Containers), and Hyper-V
Process Container (aka Windows Container): it shares a kernel with the specific container host in question and, in fact, all the containers running on that host share the host’s kernel.
Hyper-V Container: based on the Windows Nano Server image. Hyper-V Containers expand on the isolation that is provided by Windows Server Containers by running each container in a highly-optimized virtual machine, so that they provide a full secure isolation. The kernel of the container host is not shared with other Hyper-V Containers
If you intend to run the container with Hyper-V isolation, The Hyper-V role must be installed on the host first. (https://hub.docker.com/_/microsoft-windows-servercore)
Windows Server licensing regarding Containers:
This is because Hyper-V isolated containers actually uses the Hyper-V role while Windows Containers (Process isolated) does not.
If no isolation value is specified on daemon start, on Windows client, the default is
hyperv , and on Windows server, the default is
Linux Containers is not officially supported on Windows Server, only on Windows 10. MobyLinux installs with Docker Desktop (Windows 10). If you hack it onto Windows Server, then you will need to run the container in hyper-v isolation for it to run. Once running in that mode, the amount of hyperv isolation instances is limited by the host’s edition that is installed.