/docker-ecosystem-survey

An incomplete survey of the Docker ecosystem.

Apache License 2.0Apache-2.0

Docker Ecosystem Survey

An incomplete survey of the Docker ecosystem. Many products are yet to be surveyed. Comments and pull requests welcome!

Most products mentioned here are in Beta or even Alpha. Competition is fierce and churn is high. Dead products will be removed from the list and new ones will be added.

Orchestration frameworks (i.e. PaaS software for Docker)

Note: Such a framework should include at least container management, cluster management, and container placement functions. Example optional functions are fault-tolerance, replication, monitoring, development workflow automation, container dependency management, data store services, container versioning, etc.

Host OSes designed for Docker

Host cluster management

  • All Docker orchestration frameworks (see Section 1) provide cluster management one way or the other
  • Docker Machine
  • CoreOS Fleet: initd for containers

Service discovery & configuration

Container placement

  • Mesosphere Marathon
  • CoreOS Fleet: Only for initial placement. Use systemd as underlying tool. Features: X-Fleet:Conflicts, global units, unit multi-instantiation, machine metadata match.
  • Docker Swarm
  • All orchestration frameworks provide container placement

Container security

Container high-availability & scaling

  • Kubernetes ReplicationControllers. The reconciler model is great.
  • fig. The fig scale command
  • Flynn. The flynn scale command
  • Deis. The deis scale command

Container dependency management

  • CoreOS systemd: ad hoc through unit directives
  • Docker Compose (formerly fig)
  • Kubernetes Services concept: decouples inter-dependent containers and doesn’t allow explicit dependency declaration
  • Maestro: seems dead.
  • Maestro NG
  • Panamax from CenturyLink: Application templating. Have a nice Web UI. “makes deploying complex containerized apps as easy as Drag-and-Drop."
  • Procfile: used at Heroku and by Flynn and Deis.
  • Marathon

Container inter-networking across hosts

Custom network topologies on a single host

Solomon proposed to support VXLAN from the Docker core.

Container scheduling (i.e. cron for Docker)

  • Mesosphere Chronos

Container updates & versioning

  • CoreOS CoreUpdate (paid service): mainly server-side implementations. Client side requires non-trivial integration work (We can use standard docker tag/pull mechanisms instead).
  • Docker-compose's Run stage
  • Deis: See this doc
  • Flock?

Container monitoring, troubleshooting & resource enforcement

  • sysdig
  • Kubernetes cAdvisor
  • LMCTFY

Container data management

  • Flocker from clusterHQ. Data volumes follow container location, via ZFS.

DevOps streamlining & tooling

  • docker-compose (was fig)
    • In my own experience with OSX/boot2docker, fig up can be quite slow (in the matter of tens of seconds) with about 20 containers.
    • fig up <container> doesn't start volumes-from containers.
  • Crane
  • Deis
  • Flynn
  • Modit: for staging.
  • Shippable: for testing & deployment
  • docker-cmd: manage docker commands with JSON. https://github.com/iorga-group/docker-cmd. seems dead?

Image hosting companies (i.e. private registries)

  • Quay.io from CoreOS
  • Docker Hub Enterprise
  • Private Docker registries using the “registry" docker image.

Container hosting companies

Professional service providers

Useful resources

To be surveyed

TODOs

  • Add more notes to each bullet.
  • Add links.