Linux containers
Docker containers are based on already existing functionality, such as cgroups and namespaces, that was in the Linux kernel prior to the first Docker release in 2013. In the Linux kernel, cgroups is a feature that isolates and limits CPU, memory, disk I/O, and network access processes that are all bound by the same criteria. cgroups also capture all STDOUT
, STDERR
, and STDIN
output from a container and store the results in accessible logs from outside the container itself. Related to cgroups, kernel namespaces allow groups of processes to cluster together such that these processes are isolated and cannot access other resources in the OS. Specific Linux subsystems that have their own namespaces include the PID namespace, network namespace, mount namespace, IPC namespace, and user namespace, that all contain the processes to a single "virtual" view of the OS without have even knowledge of, other system or user processes that may be also running in the Linux machine...