top of page
Writer's picturevP

History of Containers

Container technology is a method of packaging an application so that it can be run with isolated dependencies, and its fragmentation of a computer system has fundamentally altered software development today. Containers may appear to be a brand-new technology that appeared out of nowhere to revolutionize IT, but they are far from it. The container concept has been around since the 1970s, when it was first used on Unix systems to better isolate application code.


In this blog post, lets quickly go through the history of container technology, and understand where did it come from?


1979 - Unix Version 7

The chroot system call was introduced during the development of Unix Version 7 in 1979. The chroot system isolates a process by restricting an application’s access to a specific directory, where this directory comprised of a root and child directories. This was the first step toward process isolation: segregating file access for each process. Chroot was added to BSD in 1982. Container technology, on the other hand, would unfortunately stagnate over the next two decades.


2000 - FreeBSD Jails

With the introduction of Free BSD Jails in the 2000s, container technology finally gained traction. "Jails" are computer partitions, and multiple jails/partitions may exist on the same system. FreeBSD Jails enables administrators to partition a FreeBSD computer system into several independent, smaller systems (called "jails"), each with its own IP address and configuration.


2001 - Linux VServer

This jail system was improved in 2001 with Linux VServer and resource partitioning. It was implemented by patching the Linux kernel. Although experimental patches are still available, the most recent stable patch was released in 2006.


2004 - Solaris Containers

The first public beta of Solaris Containers was released in 2004, combining system resource controls and boundary separation provided by zones, which could leverage ZFS features such as snapshots and cloning.


2005 - Open VZ (Open Virtuzzo)

This is a Linux operating system-level virtualization technology that uses a patched Linux kernel for virtualization, isolation, resource management, and checkpointing. The code was never included in the official Linux kernel.


2006: Process Containers

Process Containers (launched by Google in 2006) was designed for limiting, accounting , and isolating a collection of processes' resource usage (CPU, memory, disk I/O, network). A year later, it was renamed "Control Groups (cgroups)" and eventually merged into Linux kernel 2.6.24.


2008: LXC

LXC (Linux Containers) was the first and most complete Linux container manager implementation. It was created in 2008 using cgroups and Linux namespaces. It provides operating-system virtualization by allowing multiple isolated Linux environments (containers) to run on a shared Linux kernel. Each of these containers has its own network and process space.


2011: Warden

Because of LXC's reliability and stability, many other technologies have been built on it, the first of which was Warden in 2011. Warden, which runs as a daemon and provides an API for container management, can isolate environments on any operating system.


2013: LMCTFY

Let Me Contain That For You (LMCTFY) began in 2013 as an open-source version of Google's container stack that offered Linux application containers. Applications can be made "container aware," allowing them to create and manage their own sub-containers. Active deployment in LMCTFY ceased in 2015, after Google began contributing core LMCTFY concepts to libcontainer, which is now part of the Open Container Foundation.


2013: Docker

Containers exploded in popularity when Docker first appeared in 2013. It's no coincidence that the rise of Docker and the use of containers go hand in hand. Docker, like Warden, used LXC in its early stages before replacing it with its own container manager, libcontainer. But there's no denying that Docker stands out from the crowd by providing an entire ecosystem for container management.


2016

Following Docker's success, another technology, rkt (pronounced Rocket), attempted to address some of Docker's shortcomings by incorporating more stringent security and production requirements. As they interacted with the Cloud Native Computing Foundation, the impact and popularity of both of these technologies grew. This encouraged community participation and collaboration, which grew after Microsoft allowed Linux containers (including rkt and Docker) to run natively on Windows computers in 2016.

Previously, containers were primarily based on Linux technology, but this decision resulted in Microsoft becoming a major influence in container technology, as evidenced by the presence of Process and Hyper-V containers on Windows computers.


2017

Container technology gained momentum in 2017 with the introduction of Kubernetes, a highly effective container orchestration technology. Docker announced support for the Kubernetes container orchestrator at DockerCon in Copenhagen, and Azure and AWS followed suit with AKS (Azure Kubernetes Service) and EKS, a Kubernetes service to compete with proprietary ECS.


2018

Containerization became the foundation for modern software infrastructure in 2018, with Kubernetes being used for the majority of enterprise container projects. Because of the massive adoption of Kubernetes, cloud vendors such as AWS, Google with GKE (Google Kubernetes Engine), Azure, and Oracle with Container Engine for Kubernetes have begun to offer managed Kubernetes services. Leading software vendors such as VMware, RedHat, and Rancher have also begun to offer Kubernetes-based management platforms.


2019

The container landscape changed dramatically this year. Containerd, an open source container runtime engine, and CRI-O, a lightweight Kubernetes runtime engine, have begun to replace the Docker runtime engine. VMware doubled down on its Kubernetes commitment by first acquiring Heptio and then Pivotal Software (with both PAS and PKS).There were advancements made in serverless technology adoption this year, with platforms such as Knative, a Kubernetes-based serverless workloads management platform, gaining traction with organizations. The emergence of these new capabilities is thought to be the next step in the evolution of Kubernetes.


Despite a long history of incremental advancements, recent advances in Linux centered on Linux containers are revolutionizing the way businesses develop, consume, and manage applications.


We will learn more about the containers in this series.


I hope you found this article useful.


Thank you for reading!


*** Explore | Share | Grow ***

7 views0 comments

Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
bottom of page