FreeBSD had jails in 2000. Linux had namespaces and cgroups for years. No one cared until Docker came up with containers in 2013.
FreeBSD had jails in 2000. Linux had namespaces and cgroups for years. No one cared until Docker came up with containers in 2013.
It's easy to dismiss it as a better mousetrap, but it was an inflection point in the same way puppet and cfengine before it were inflection points in configuration management and "infrastructure as code"...
Still, I find the Docker daemon massively invasive and too much of a potential gaping security hole. I wish it was more modular and less of it ran privileged/as root, and don't run it on anything sensitive as a result. Usually properly configuring a box and relying on existing process and other forms of isolation (including namespaces) is good enough, especially with good package management. Great for UX/workflow tooling in a dev VM though!
Under the hood Docker has been heavily modularized. Check out https://containerd.io which handles all the low-level container operations in a lightweight daemon with way less footprint. You can use it standalone without pulling in the rest of the Docker platform.