For all of Docker's capabilities, it can't pull yet off a host of feats -- at least, not without third-party help. Among the newest solutions is Flocker, an open source Docker management solution designed to deal with applications created in Docker and the data traveling with them.
Docker applications relying on data -- a database, for example -- can have the data stored in a volume that travels with a container. This solution works fine for a single node with a single instance of a database, but beyond that is a sticky wicket. Containers running on multiple nodes have to be linked to each other manually. Most important, Docker doesn't (yet) have a native mechanism for preserving application state, especially for applications distributed across containers.
Flocker was created to deal with these problems. The documentation states how it provides an orchestration solution for containers on multiple nodes, a network routing solution that works across different nodes, a way to manage application state via Docker volumes, and application and deployment configuration data for the apps themselves.
To work its magic, Flocker borrows ideas and technology from across the map. For describing how applications are organized across multiple containers, Flocker integrates features from Fig. Attached storage uses ZFS filesystems in Docker data containers, with volume behaviors like cloning conducted through ZFS itself. A tutorial included with Flocker's documentation provides a real-world example for deploying and migrating a MongoDB instance.
Don't expect a full-blown turnkey solution to those problems yet -- Flocker's official revision number is still only 0.3. Migrating an app, for instance, involves editing the application's configuration file for the new target machine, so the process isn't wholly automatic. Flocker's Areas of Potential Future Development document offers possible improvements, many of which could be part of a wish list for Docker. No-downtime migration, for instance, isn't possible yet, but it's a feature any serious Docker user would want.
Docker's explosive growth and evolution across the past year and change has exposed as many limitations in its ecosystem as it has created users, adherents, and evangelists. Docker networking, container orchestration, and volume management are all still works in progress. Who comes up with the most robust, long-term solutions to those problems doesn't matter, since open source work can be merged in from most any camp.
What will matter is who can deliver the solution that requires the least amount of user lifting and integration -- whether it's Docker, a third-party software company, or one of the many cloud vendors (Amazon, for instance) now taking Docker to heart as a production solution.