The amount of manual labor required to specify the way Docker containers in a multi-container application interconnect and how those connections use the physical network infrastructure underneath has been one of the largest barriers to adoption of the startup’s technology.
This is why a new software-defined network for containers is front and center in the latest release of the platform Docker announced this morning at its sold-out second annual DockerCon event in San Francisco, the startup’s home base.
The big addition in Docker 1.7 is an “SDN stack that takes multi-host networking all the way down to the container,” David Messina, the company’s VP of marketing, said. “Our goal is to move distributed applications forward.”
Essentially, it automates network provisioning for an application that consists of multiple Docker containers running on multiple host servers in a data center or multiple VMs in a cloud. It creates an automated virtual network topology where containers identify each other through a domain name system (DNS) and communicate over an IP infrastructure.
Docker gained the container SDN technology through its acquisition of a startup called SocketPlane in March. SocketPlane’s open source virtual switch, called Open vSwitch integrates with Docker’s container management platform.
The SDN code is part of Docker Engine, the Docker runtime. All that’s required from the developer is to define the container images the application uses and relationships between them using the company’s Compose tool.
Swarm, the server clustering part of the platform, schedules the containers to run on different hosts. Through APIs, Swarm calls into the networking stack to define the network topology.
The Docker platform doesn’t configure the network itself. The company is partnering with numerous vendors to make their solutions compatible with the container SDN.
Initial partners that have created Docker networking plugins include Cisco, VMware, Midokura, Nuage Networks, Microsoft, Weaveworks, and Calico.
Docker has also made some updates to the orchestration tools Compose and Swarm. Aiming to give operations staff more flexibility with the way they deploy Docker applications, it has added the ability to replace the backend piece of Swarm with Mesosphere, the popular clustering system. This capability is currently in beta.
Another option that’s coming in the near future is the ability to replace Swarm’s backend with Amazon Web Services’ EC2 Container Service, or ECS.