Difference between revisions of "Container"

From docwiki
Jump to: navigation, search
(Why Container?)
(Why Container?)
Line 13: Line 13:
 
Today, Linux has a generalized framework for limiting what processes can see with the "'''cgroups'''" which is used for container-type virtualization.
 
Today, Linux has a generalized framework for limiting what processes can see with the "'''cgroups'''" which is used for container-type virtualization.
   
  +
What was driving this was not so much a need for security or the desire to offer cheap root-servers but the ever more increasing dependency hell in languages as ruby, python, etc.. With the fast pace of development in this newer languages developers need to keep track about which version of the programming language and which modules they use. What worked in python2.4 did not work in python2.6, and then there are dependencies on many modules which are also available in newer and older versions and which are not always compatible.
What was driving this was not so much security or the desire to run
 

Revision as of 19:36, 1 November 2020


Motivation

Container provide a light-weighted virtualization where the kernel of your system is used but the processes that have a different view onto the system. Here you will learn the basic terminology of the container world and some examples.

Why Container?

In the beginning was the chroot command that allows a process to see only a part of the file-system but it was never meant as a secure confinement. FreeBSD developed something out of this with the name "jail" where you could really limit a process. Jails where limited to be only able to interact with processes inside its jail and also restricted with certain operations.

When Linux become popular hosting-providers wanted to offer cheap "root-servers" to customers without the overhead of full virtualization. This lead to the creation of "linux-VServers" but this was not part of the mainline kernel.

Today, Linux has a generalized framework for limiting what processes can see with the "cgroups" which is used for container-type virtualization.

What was driving this was not so much a need for security or the desire to offer cheap root-servers but the ever more increasing dependency hell in languages as ruby, python, etc.. With the fast pace of development in this newer languages developers need to keep track about which version of the programming language and which modules they use. What worked in python2.4 did not work in python2.6, and then there are dependencies on many modules which are also available in newer and older versions and which are not always compatible.