November 18, 2016
But “container technology” can be a bit of a misnomer. Docker is synonymous with containers and the container engine, but as operating system virtualization (e.g. “containers”) has matured, the ecosystem of tools and supporting software that surrounds it has grown exponentially. It’s not enough to merely say “containers” anymore; from the operating system to the engine to orchestrators, there are now many choices to help make container implementations successful.
Containers sit on top of a physical server and its host OS, e.g. Linux or Windows. Each container shares the host OS kernel and, usually, the binaries and libraries, too. Shared components are read-only; writing to each container is possible through a unique mount. This makes containers exceptionally “light” — containers are only megabytes in size and take just seconds to start, versus minutes for a VM. There are three main container engines to choose from (and a smattering of other offerings): Docker, CoreOS’s Rocket, and Linux Containers.
Here are the advantages of each one.