Docker Makes Containers More Portable With New Networking Stack, Adds Plug-In Support

Docker is holding its developer conference in San Francisco today, so it’s no surprise that the company is rolling out quite a few updates to its software container solution. Maybe the biggest announcement of the day is the launch of the Open Container Project — an attempt to create a standard container format and runtime under the Linux Foundation that’s supported by the likes of Docker, CoreOS (which had been working on its own competing format), Microsoft, Google, Amazon, RedHat and VMware.

The highlight of today’s product releases is a new Docker networking stack that now allows developers to take their networked Docker containers from one platform to another without having to recreate the network.

DSC00321

To a large degree, this new feature is the result of Docker’s acquisition of SocketPlane earlier this year and the feedback Docker has been getting from its networking partners. SocketPlane allowed developers to essentially create a software-defined networking layer to connect their containers. This ensures that Docker-based applications can communicate across networks and that they are portable across different network infrastructures.

Screenshot 2015-06-21 at 17.23.38

The company’s senior vice president of product, Scott Johnston, told me the idea is to do to networking what Docker already did for compute. “We are super excited to bring the portability that Docker brought to containers to the networking level,” Johnston said. With this, developers now have the ability to take not just the containers with their apps and move them between providers, but to also preserve the networking setup that connected all of these containers during these moves.

This new feature takes most of what SocketPlane already offered and wraps it into Docker’s command-line interface.

DSC00331

“By bringing SDN directly to the application itself and into the hands of the developers, Docker is driving multi-container application portability throughout the application development lifecycle,” said Solomon Hykes, CTO and chief architect of Docker. “Individual developers, through a single command, can establish the topology of the network to connect discrete Dockerized services into a distributed application. And then through a set of commands be able to inspect, audit and change topology ‘on the fly.’”

DSC00296

The new networking features are now also integrated into Docker Swarm and Compose, the company’s tools for setting up Docker clusters and container orchestration. As Docker announced today, Swarm will also now support Mesos (and, by extension, Mesosphere) as a backend, for example. The company is also working with Amazon to provide a native cluster management to AWS users and to optimize scheduling containerized applications on Amazon’s EC2 service.

To make this work on different networking setups, the Docker team is also launching a new plug-in architecture today. This allows developers to swap in different implementation APIs as needed when they move between different networking stacks.

Screenshot 2015-06-21 at 17.22.24

On the networking side, Docker has already worked with Microsoft, VMWare, Cisco, Nuage Networks, Midokura, Weave and Project Calico. These companies have built extensions for their services on top of the Docker platform, and the Docker team expects others will soon follow suit.

DSC00338

Docker has also worked with ClusterHQ, which specializes in container data management, and is probably best known for its Flocker tool to support their storage volumes.

With today’s update, Docker is also introducing a rapid-release channel that will give developers the option to always run the latest (and potentially buggy) release of the company’s tools.

As Docker also announced today, the team has decided to spin out a lot of the ‘plumbing’ — that is many of the non-core tools the team has built around its services.