The latest release of application containerization software Docker features some major updates including production-ready Docker Swarm, multi-host networking, Docker Engine’s new volume management system, and improved support across multiple environments with Docker Compose.
Among container technologies that efficiently package applications so they can run as lightweight microservices, Docker has been an extremely popular open-source choice, with its main alternative being LXC Linux containers.
In Docker 1.9, released Tuesday, the new features work together to provide a more complete toolset aimed 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 year.
Essentially, Docker Swarm pools infrastructure into a single resource for hosting distributed apps, Docker Networking helps the containers making up those apps speak to each other, and Docker Engine’s new volume management system allows persistent data storage wherever those containers are. And Docker Compose helps developers more easily define and run containers in multi-container applications.
First announced as an experimental Docker Engine feature at DockerCon in June, generally available networking improvements allow users to create virtual networks in Docker Engine that span multiple hosts. Containers can attach to these virtual networks and communicate over them. This gives administrators complete control over the network topology and how containers can talk to each other.
The networking system can also be swapped out with a plugin to integrate with other networking systems without changing the application.
Storing persistent data in distributed apps has been a struggle for many Docker users according to Frishman. “Docker Engine 1.9 includes a completely redesigned volume system that makes them much easier to use and brings plugins to the forefront.”
Docker 1.8’s plugable storage volumes allow Docker volumes to use any third-party storage system. Storage volumes also work with Swarm, allowing persistent storage across an entire cluster. Volume drivers are available for Blockbridge, Ceph, ClusterHQ, EMC and Portworx.
Docker Swarm 1.0 provides native clustering for Docker Engine. In addition to bug fixes, the latest version has been optimized, hardened, and tested at scale for production-ready applications spanning 1,000 nodes and 30,000 containers.
Docker Compose now provides better support for multiple environments – making it easier to specify the structure of the development, test, and production environments. In configuring images, Docker Compose now reads two files: docker-compose.yml and an optional docker-compose.override.yml file. You can specify a base file that describes the structure of the app, then you could have variations in the override file for staging or production.
Compose 1.5 provides more thorough validation of Compose files and output with more informative error messages when something goes wrong.
The new Compose also features experimental support for Docker Networking, allowing a Compose app deployed on Swarm to work across multiple hosts.
Docker Compose also now runs on Windows and is included in Docker Toolbox for Windows.
Docker Toolbox includes all the latest elements of Docker for a Mac or Windows workstation along with Machine 0.5, which creates Docker Engines on a laptop. It also includes pluggable drivers that allow users to run Docker containers on a cloud or virtualization providers, or write custom drivers for services without Docker drivers.