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.

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.

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.

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.

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.

Docker Compose 1.5

• 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.

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.

Docker Registry 2.2

Here’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.

Tushar

[…] Docker’s multiple-host networking tool initially released for beta testing in June creates virtual networks in the core Docker Engine runtime that span multiple hosts. Application containers can then be attached to these networks regardless of host while allowing containers to communication with each other, Ben Firshman, a Docker software engineer, noted in a blog post. […]

[…] at running stateful and stateless distributed applications in production and at scale, according to a blog post from Docker’s Ben Frishman, co-founder of Docker web host Orchard Laboratories which Docker bought last […]