Ben Firshman

Announcing Docker 1.9: Production-ready Swarm and Multi-host Networking

Ben Firshman

Today we’re releasing Docker 1.9 – and it’s a big one. Docker Swarm and multi-host networking are production-ready, Docker Engine has a new volume management system, and Docker Compose has much better support for multiple environments. These in combination establish the foundation for scaling your distributed apps in production.

Containerization is changing how you build infrastructure, and you need to use the right tools for the job. Docker Swarm turns your infrastructure into a single pool of resources for running your distributed apps, but all of the containers that are part of those apps need managing somehow. And they all probably need to talk to each other. And some of them probably need to store data somewhere. In a world where a container could be running on any host in your infrastructure, this is a difficult thing to manage.

Needless to say, we’ve got you covered. Docker Networking allows you create virtual networks that span underlying hosts, so your containers can communicate with each wherever they are. The new volume management system in Docker Engine lets you store persistent data wherever those containers land. On top of these fundamentals, you can then use Compose to run the important bit: your application.


Multi-host Networking

Networking was announced as part of the experimental release at DockerCon in June. We’re pleased to announce that Networking is now in the stable release of Docker Engine and ready to use in production.

Networking allows you to create virtual networks in Docker Engine that span multiple hosts. Containers can be attached to these networks wherever they are, giving you complete control over your network topology and what container can talk to what. Not only that, but the system powering networks can be swapped out with a plugin, allowing you to integrate with any networking system you want without having to modify your application.

Read more about this on our Networking blog post. We’ll also be hosting an online meetup dedicated just to Networking, where you can hear from the engineers who built it.


Persistent Storage

You’ve told us again and again that you’re struggling to store persistent data in your distributed apps. Docker 1.8 included volume plugins, allowing you to back Docker volumes by any third-party storage system.

We’ve now made that even better. Docker Engine 1.9 includes a completely redesigned volume system that makes them much easier to use and brings plugins to the forefront. It even works with Swarm, allowing you to manage persistent storage across your entire cluster.

Here’s how it works with the Flocker plugin:

$ docker volume create -d flocker --name=myvolume
$ docker run -v myvolume:/data busybox sh -c "echo hello > /data/file.txt"
$ docker run -v myvolume:/data busybox sh -c "cat /data/file.txt"


There are drivers available for Blockbridge, Ceph, ClusterHQ, EMC and Portworx. See the volume documentation and volume plugins documentation for full details.


Docker Swarm 1.0

Docker Swarm is native clustering for Docker Engine. For this release, we’ve buckled down and scale tested, bug squashed, optimized and hardened. In combination with new networking and volumes in this release, we can confidently say that Docker Swarm is ready for your production applications. We’ve been scale testing it to 1,000 nodes and 30,000 containers, and it doesn’t break a sweat.

Read more in this blog post and join our online meetup to learn more.


Docker Engine 1.9

In addition to networking and volume management, the 1.9 release has a bunch of other new features:

Build-time arguments in Dockerfile: It’s now possible to define arguments in a Dockerfile that can be passed to docker build to customize how an image is built. For example, you might want to set HTTP_PROXY, customize what version of a dependency is installed, etc.
Concurrent image pull: If you pull an image that is already in the process of being pulled, its progress will be displayed and the command will exit correctly. (No more getting stuck on “Layer already being pulled by another client”!)
Custom stop signals: A STOPSIGNAL Dockerfile instruction has been added allowing you to customize the signal that gets sent to your application when you do docker stop.
AWS CloudWatch logging driver: If you’re on AWS, you can now ship your container logs directly to CloudWatch.
Disk I/O metrics: docker stats will now display disk metrics.

Check out the release notes for the full list. Huge thanks to everyone who made this release happen – Madhav Puri for build-time arguments, and Darren Shepard, Patrick Hemmer, and Harald Albers for testing, reviewing and all around helping with the release.

Also, check out the upcoming webinar: Persistent Storage, Data and Docker to learn more about how to use the new volume management. Register today.


logo+title-final-compose-2bDocker Compose 1.5

Docker Compose is a tool for defining and running multi-container applications. Here’s what’s new:

Windows support: Compose now runs on Windows and is included in Docker Toolbox for Windows. This allows development environments built on Mac run on Windows, and vice versa.
Environment variables in Compose files: You can now make anything in your Compose file configurable at runtime by using environment variables.
Better support for multiple environments: You can specify a single base file that describes the structure of your app and override that with files that specify the differences in development, test, and production. See this guide for more information on how to do this.
Integration with networking: Experimental support for Docker’s new networking is in this release, so when you deploy a Compose app on a Swarm, it’ll work across multiple hosts. Full details are here.
Compose file validation: Compose will now thoroughly validate your Compose file and output much better error messages when you get something wrong.

Check out the release notes for everything that’s new, and download Docker Toolbox to try it out.


Docker Toolbox

To use all of this new stuff in development on Mac or Windows, download Docker Toolbox. It includes all the latest versions of everything above bundled into a single, convenient installer. Give it a try!

It also includes Machine 0.5, a tool for creating Docker Engines on your laptop and on cloud providers. Machine now has pluggable drivers, so if there’s a cloud or virtualization provider you want to run Docker containers on that’s not available today, you can now write your own driver for it. Check out the full release notes here.

To take advantage of all these features, plus a bunch of other bug fixes and more, download Docker Toolbox for Mac and Windows today.


Docker Registry 2.2

logo+title-final-registry-2Here’s what’s new in the latest release:

Google Cloud Storage support: You can now store your layers and manifests on Google infrastructure.
Read-only mode: If you want to maintain availability during unsafe administrative tasks, you can now switch Registry into a read-only mode to stop users from pushing.
Configurable file-existence and HTTP health checks: Administrators can temporarily disable a registry by placing a file on the filesystem. The registry can be configured to check the health of other services, such as notification endpoints.
Configurable HTTP response headers: You can now customize the HTTP headers that Registry responds with so you can improve security, customize it for your environment, etc.

Check out the release notes for the full list. Try the latest Docker Registry today.


 Learn More about Docker

• New to Docker? Try our 10 min online tutorial
• Sign up for a free 30 day trial of Docker
• Share images, automate builds, and more with a free Docker Hub account
• Read the Docker 1.9 Release Notes
• Subscribe to Docker Weekly
• Register for upcoming Docker Online Meetups
• Attend upcoming Docker Meetups
• Register for DockerCon Europe 2015
• Start contributing to Docker



22 thoughts on “Announcing Docker 1.9: Production-ready Swarm and Multi-host Networking

  1. Nikos Nikolakakis


Leave a Reply