Flocker lets you move your Docker containers and their data together between Linux hosts. This means that you can run your databases, queues and key-value stores in Docker and move them around as easily as the rest of your app. Even stateless apps depend on many stateful services and currently running these services in Docker containers in production is nearly impossible. Flocker aims to solve this problem by providing an orchestration framework that allows you to port both your stateful and stateless containers between environments.
Docker allows for multiple isolated, reproducible application environments on a single node: “containers”. Application state can be stored on a local disk in “volumes” attached to containers. And containers can talk to each other and the external world via specified ports.
But what happens if you have more than one node?
The diagram below provides a high level representation of how Flocker addresses these questions.
Below is a high-level overview of Flocker’s architecture. For more information, you can follow along with a tutorial that walks you through deploying and migrating MongoDB or read more in our advanced documentation.