Advanced Topics

Rancher Convoy

Docker has various drivers(aufs, device mapper, etc) for container's root image, but not for volumes. User can create volume through docker run -v volname, but it's disposable, cannot be easily reused for new containers or containers on the other hosts. For example, if you start a wordpress container with database, add some posts, remove the container, then the modified database would lost.

Before volume plugin, the only way to reuse the volume is using host bind mount feature of Docker, as docker run -v /host_path:/container_path, then maintain the content of the volume at /hostpath. You can also use --volume-from but that would require original container still exists on the same host.

Convoy used Docker volume plugin mechanism to provide persistent volume for Docker containers, and supports various of backends(e.g. device mapper, NFS, EBS) and more features like snapshot/backup/restore. So user would able to migrate the volumes between the hosts, share the same volume across the hosts, make scheduled snapshots of as well as recover to previous version of volume. It's much easier for user to manage data with Docker volumes with Convoy.

Backends supported by Convoy currently

  • Device Mapper
  • Virtual File System(VFS)/Network File System(NFS)
  • Amazon Elastic Block Store(EBS)

Flocker

Flocker is an open-source container data volume manager for your Dockerized applications.

By providing tools for data migrations, Flocker gives ops teams the tools they need to run containerized stateful services like databases in production.

Unlike a Docker data volume which is tied to a single server, a Flocker data volume, called a dataset, is portable and can be used with any container in your cluster.

Flocker manages Docker containers and data volumes together. When you use Flocker to manage your stateful microservice, your volumes will follow your containers when they move between different hosts in your cluster.

Portworx

Container-Defined Storage:

Reduce Costs and Increase Capacity Rather than attach containers to expensive SANs or be limited by server disk capacity, Portworx pools capacity, providing expandable storage at a dramatically lower price.

Avoid Datacenter Sprawl Databases and queuing systems store state. Even ephemeral workloads log and write data. Portworx provides highly available, persistent storage so you can avoid silos for stateful services that must be provisioned and managed separately.

Manage Apps with the Tools of Your Choice Portworx enables IT teams to use container schedulers of their choice and optimize read-write performance of containers.

Keep Containers Portable By providing an always-accessible storage layer, containers can run on any server in a cluster and access their data. Storage can also be moved across clusters, at container granularity.