Windows Server 2016 Adds Native Overlay Network Driver, enabling mixed Linux + Windows Docker Swarm Mode Clusters

Based on customer and partner feedback, we are happy to announce the Windows networking team released a native overlay network driver for Windows Server 2016 to enable admins to create a Docker Swarm cluster spanning multiple Windows Server and Linux container hosts without worrying about configuring the underlying network fabricWindows Server containers and those with Hyper-V Isolation powered by Docker are available natively in Windows Server 2016 and enable developers and IT admins to work together in building and deploying both modern, cloud-native applications as well as supporting lift-and-shift of workloads from a virtual machine (VM) into a container. Previously, an admin would be limited to scaling out these containers on a single Windows Docker host. With Docker Swarm and overlay, your containerized workloads can now communicate seamlessly across hosts, and scale fluidly, on-demand. 

How did we do it? The Docker engines, running in Swarm mode, are able to scale-out services by launching multiple container instances across all nodes in a cluster. When one of the “master” Swarm mode nodes schedules a container instance to run on a particular host, the Docker engine on that host will call the Windows Host Networking Service (HNS) to create the container endpoint and attach it to the overlay networks referenced by that particular service. HNS will then program this policy into the Virtual Filtering Platform (VFP) Hyper-V switch extension where it is enforced by creating network overlays using VXLAN encapsulation.

The flexibility and agility enjoyed by applications already being managed by Docker Swarm is one thing, but what about the up-front work of getting those applications developed, tested, and deployed? Customers can re-use their Docker Compose file from their development environment to deploy and scale out a multi-service/tier application across the cluster using docker stack deploy command syntax. It’s easy to leverage the power of running both Linux and Windows services in a single application, by deploying individual services on the OS for which they are optimized. Simply use constraints and labels to specify the OS for a Docker Service, and Docker Swarm will take care of scheduling tasks for that service to be run only on the correct host OS. In addition, customers can use Docker Datacenter (via Docker Enterprise Edition Standard) to provide integrated container management and security from development to production.

Ready to get your hands on Docker Swarm and Docker Datacenter with Windows Server 2016? This feature has already been validated by beta customers by successfully deploying workloads using swarm mode and Docker Datacenter (via Docker Enterprise Edition Standard), and we are now excited to release it to all Windows Server customers through Windows Update KB4015217. This feature is also available in the Windows 10 Creator’s Edition (with Docker Community Edition) so that developers can have a consistent experience developing apps on both Windows client and server.

To learn more about Docker Swarm on Windows, start here (https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/swarm-mode). To learn more about Docker Datacenter, start with Docker’s documentation on Docker Enterprise Edition (https://www.docker.com/enterprise-edition).

Feature requests? Bugs? General feedback? We would love to hear from you! Please email us with feedback at sdn_feedback@microsoft.com.