Skip to main content

Julia Evans

A list of Linux container software

I have been confused about the plethora of container software in the world. This is a list, mostly to remind myself that there is a lot of software and so it is not surprising that I do not understand what it all is yet.

I’ve tried to restrict this to just “software that you might reasonably want to use/consider/understand when running containers in production”. My rough heuristic for this is just “software someone has told me about more than once, and is not experimental”. Obviously some of these things are more important than others.

Having written this down, I feel a bit better – there are only 17 pieces of software on this list, from 6 different organizations. That’s actually less than I felt like it was and I kinda sorta know what all of these things do.

The major organizations writing open source software to help people run containers on Linux seem to be (alphabetically): Canonical, CoreOS, Docker, Google, HashiCorp, Mesosphere, Red Hat, and OCI (cross-company foundation).

I’ve tried to summarize each one in 3 words or less which is hard because a lot of this software has a lot of different jobs.

  • docker stuff
  • Kubernetes stuff
  • Mesosphere stuff
  • CoreOS stuff
    • CoreOS (linux distribution)
    • rkt (runs containers)
    • flannel (network overlay)
    • etcd (key-value store)
  • HashiCorp stuff
    • consul (key-value store, service discovery)
    • packer (creates containers)
    • vault (secrets management)
    • nomad (orchestration)
  • OCI (open container initiative) stuff
  • systemd-nspawn (man page) (starts containers)
  • dumb-init (init process)
  • LXC (runs containers, from Canonical)

There are also a bunch of container registries you can pay for, like quay (from CoreOS), google’s one, docker trusted registry, etc.

I’ve probably missed at least one important organization / piece of software here. As usual you can tell me about it on twitter.

"I just want to run a container!" What happens when you start a process on Linux?