Bullet points:
- 1979: Unix V7
Introduced the chroot command to isolate the filesystem a process “access” to. - Various technology was introduced up to 2006, like Virtuozzo (which patched Linux in a proprietary ways)
- 2006: Process Containers
Launched by Google in 2006 was designed for limiting, accounting and isolating resource usage (CPU, memory, disk I/O, network) of a collection of processes. It was renamed “Control Groups (cgroups)” a year later and eventually merged to Linux kernel 2.6.24. - 2008: LXC
LXC (LinuX Containers) was the first, most complete implementation of Linux container manager. It was implemented in 2008 using cgroups and Linux namespaces, and it works on a single Linux kernel without requiring any patches. - 2013: Docker
Docker used LXC in its initial stages and later replaced that container manager with its own library, libcontainer.
Docker offered a way to configure and manage containers, i.e a standard de-facto for this technology.
As you see Docker was based on cgroups and LXC, seven-years old technologies - On September 2014 Google published the first release of Kubernetes
- In 2015 Docker, CoreOS and others founded the Open Container Initiative’s (OCI).
K8s does not need docker anymore to work, but Docker traction is still strong.
References:
https://blog.aquasec.com/a-brief-history-of-containers-from-1970s-chroot-to-docker-2016