With Docker container support now available for Windows Server 2016, admins are bound to wonder what the differences are between Windows and Linux containers. Here’s an overview.
To keep things simple, let’s break them down into their similarities and differences. They look like this:
Docker containers on Linux and Windows are similar in the following ways:
- They are designed to function as application containers.
- They run natively, meaning they do not depend on hypervisors or virtual machines.
- They can be administered through Docker (although you can also use PowerShell to manage containers on Windows).
- They are limited to containing applications that are natively supported by the host operating system. In other words, Docker for Windows can only host Windows applications inside Docker containers, and Docker on Linux supports only Linux apps.
- They provide the same portability and modularity features on both operating systems.
And here’s what makes Docker on Windows different:
- Docker supports only certain versions of Windows (namely, Windows Server 2016 and Windows 10). In contrast, Docker can run on any type of modern Linux-based operating system.
- Even on Windows versions that are supported by Docker, Windows has stricter requirements regarding image compatibility. Read more about those here.
- Some Docker networking features for containers are not yet supported on Windows. They are detailed at the bottom of this page.
- Most of the container orchestration systems that are used for Docker on Linux are not supported on Windows. The exception is Docker Swarm, which is supported. (If you want to use a different orchestrator on Windows, however, fret not; Windows support for orchestrators such as Kubernetes and Apache Mesos is under development.)
Non-Docker Containers and Windows
It is worth mentioning, too, that Docker is the only major container platform that is currently compatible with Windows. Other types of container engines, such as OpenVZ and LXD, are still Linux-only, and probably will remain so for the foreseeable future.
Since these container platforms cater to different types of use cases than Docker, their lack of Windows support may not matter for admins deciding whether to run Docker on Windows or Linux. Still, the fact that Docker is the only container option available on Windows is significant because it highlights the fact that the Windows container ecosystem is, for now, much smaller than the Linux container world.