Docker provides an additional layer of abstraction and automation of operating-system-level virtualization on Windows and Linux. Docker uses the resource isolation features of the Linux kernel such as cgroups and kernel namespaces, and a union-capable file system such as OverlayFS and others to allow independent "containers" to run within a single Linux instance, avoiding the overhead of starting and maintaining virtual machines (VMs).
Similarities
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.
Differences
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.)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.