Chapter 2. Introduction to containers and orchestration with Kubernetes 21
The following timeline highlights the major shifts in the development of container to date (see 
Figure 2-9):
/SM5900002000 FreeBSD Jails: FreeBSD Jails enabled Computer systems to be partitioned into 
multiple servers that were independent subsystems named Jail with unique IP address.
/SM5900002001 Linux Vserver: Similar to FreeBSD Jails, Linux also developed a feature for operating 
system virtualization where a file system, memory, and network can be shared among 
independent systems. 
/SM5900002004 Solaris Containers: Solaris Containers combined system resource controls and 
boundary separation that was provided by zones to take advantage of features, such as 
snapshots and cloning from ZFS.
/SM5900002006 Google process containers: Process Containers was designed for limiting, 
accounting, and isolating resource usage (CPU, memory, disk I/O, and network) of a 
collection of processes. Later, this was renamed as Control Groups (cgroups) and merged 
to Linux kernel 2.6.24.
/SM5900002008 LXC evolved (Linux Container Group): Linux Containers (LXC) was the first, most 
complete implementation of Linux container manager. It was implemented in 2008 by 
using cgroups and Linux namespaces.
/SM5900002013 Let Me Contain That For You (LMCTFY): Let Me Contain That For You (LMCTFY) 
started in 2013 as an open source version of Google’s container stack. Applications can 
be made container aware, which creates and manages their own subcontainers. 
/SM5900002013 Docker: Docker emerged, which made container service even more popular. Docker 
and container grew together. 
/SM5900002016 Security and DevOps: Container security enhanced and DevOps method evolved as 
most preferred Container Application process.
/SM5900002017 Container becomes more matured with CNCF and Kubernetes.
Figure 2-9   Containers timeline