How was the technology of containers born?
In the last post we talked about containers, a technology increasingly used in the IT and Cloud computing field, the origin of which is not so recent as you might think. Let’s see together a short history of containers: from the idea on which the technology is based to the latest solutions (Docker and similar systems).
The basic concept of containers was born back in the 1979 with chroot UNIX, a system able to provide isolated spaces for the processes in the storage in use. For this particular characteristic, Chroot can be considered as a sort of forerunner of the actual containers.
Only after twenty years comes the closest solution to the containers used nowadays: it is FreeBSD Jail, introduced in 2000. FreeBSD Jail allowed to distribute the system in more isolated sub-systems called jail. Compared to chroot, the additional feature of these environments was the possibility of isolate also file system, users and networking, making them more secure. But this solution have some weaknesses in terms of implementation and it was replaced soon by more efficient methods.
The following year, in 2001, was developed a solution similar to FreeBSD Jail called Linux VServer, capable to partition the computer resources in the so-called “security contexts”, into which there was a VPS system (Virtual Private Server). The VServer project, launched by Jacques Gèlinas, lays the foundations to the creation of several controlled user spaces in Linux and, during the years, with additional technologies and components, it will lead to the development of the current Linux containers.
Thanks to the development of new technologies and to the progress made with the namespaces, in 2008 was born the project LinuX Container (LXC): the most complete solution of containers management in those years. Among the crucial components of the project there is the development of cgroups, created by Google in 2006, which allow controlling and confining the amount of resources used for a process or for a group of processes.
2013 is the turning point: it comes Docker, the Linux container system most used in the IT field. Docker is an open source project developed by the company Dotcloud (afterwards renamed Docker) on the basis of LXC, which through several advances becomes what is Docker technology now. Since 2014 Docker doesn’t use LXC as default execution environment anymore, replaced by its own Libcontainer library, based on the programming language GO. Docker is a complex but very intuitive ecosystem for the deployment and the management of containers, rich in functionalities including image system, local and global registries for containers and a command line interface.
We talked specifically about Docker because is the main used technology in the world, but obviously is not the only one container management system: there are different technological solutions which have the same function like Kubernetes, Google Container Engine and many more.
Do you want to know more about container technology? Request a free consulting with our experts!