Today’s announcement is a critical element for enterprises looking to use Docker containers in production environments. One of the most common enterprise requirements is to run databases as stateful microservices in containers. However, containers are ephemeral in nature and not designed to run stateful apps -- at least not without integration with shared storage. We know customers are demanding pre-integrated, end-to-end Docker solutions and that’s what we can do now.

This blog is designed to help you understand what this all means and how it works at a high-level.

What is Docker Datacenter?

To-date, Docker’s momentum has been in cloud native environments where a do-it-yourself approach is more prevalent. To help containers penetrate the enterprise and truly go mainstream, Docker bundled many of its existing components so that enterprises can more easily run and manage Docker in a typical enterprise datacenter. Docker Datacenter is rounded out with support subscriptions.

Put succinctly, Docker Datacenter is described as: “an integrated solution including open source and commercial software, the integrations between them, full Docker API support, validated configurations and commercial support for your Docker Datacenter environment.”

The primary components of Docker Datacenter include:

Support for the Docker API along with Engine and Swarm embedded

Security with Docker Content Trust (image signing and verification) for

Integrations into additional Docker ecosystem tools like Client and Compose.

Partner integrations including plugins. The Docker Volume Plugin is what Hedvig leverages.

Where does Hedvig fit in Docker Datacenter?

The Docker Volume Plugin we’ve created enables a Docker host to access Hedvig as it’s underlying storage. By default, a Docker host can only access local storage. With a Docker Volume Plugin, the containers on a host now have the ability to read and write from shared storage. This particular capability is not unique; any vendor that supplies a Docker Volume Plugin can do this. However, we do this using NFS, which is very unique to Hedvig.

Other storage solutions use iSCSI, which we support via our partnership with ClusterHQ and development of the Hedvig Flocker Driver). However, iSCSI doesn’t support the ability to move containers among hosts without a product like Flocker in between. We’ve implemented container volumes with NFS, which allows us to mount the same volume on different hosts. Hedvig has unique capabilities on the backend of the cluster to ensure this scales across a multi-reader environment. Moreover, the Hedvig Storage Proxy architecture enables us to optimize NFS traffic so you get none of the performance downside, but with all of the multi-host, multi-tenant upside. Hedvig is actually protocol agnostic, so there is no performance difference between iSCSI and NFS. It's a customer deployment preference.

Hedvig works with the orchestration layer (Swarm in the case of Docker Datacenter) to move, spin down, and spin up containers with the ability for that container to access its volume from any host in the cluster.

How does the Hedvig Docker Datacenter solution work?

Anyone familiar with Docker’s UI (or even similar UIs like VMware vCenter and OpenStack Horizon) will be able to instantly provision Hedvig volumes.

To see the solution in action, here’s a 5-minute demo showing a MongoDB database accessing a dataset stored on Hedvig volumes. In this demo, we show that the container can be destroyed, a new one spun up, and then reconnected to the same volume for dataset persistence.

How do I get started with the Hedvig Docker Datacenter solution?

Assuming you already have Docker Datacenter up and running, then to get started customers just need to download the Hedvig Docker Volume Plugin from GitHub.

The Hedvig Docker Volume Plugin must then be distributed to each host that will need access to Hedvig storage, which can be easily accomplished from Docker command line.

That’s it!

From there you can now use Hedvig for all of your Docker container storage needs.

Thank you, Valentin, for leaving a comment and your interest in Hedvig. I checked with our technical staff and on order to install our Docker plugin, the Hedvig cluster needs to be installed first. You then take the following steps:
1. Create /etc/hedvig directory
2. Create /etc/hedvig/config.xml pointing to Hedvig cluster
3. Copy latest docker plugin binary to "etc/hedvig"
I hope this helps and we can discuss further if need be.