Virtual Environment - Linux Container

Fri, 04/15/2016 - 17:48 -- pottol

Containers are structures and tools for allowing Linux to execute processes in completely separate areas, that is: Virtual Environments (VE).

The separation should be concern the three following:

  1. File System (chroot)
  2. Process (namespaces)
  3. Resource (cgroups)

See also:

http://www.haifux.org/lectures/299/netLec7.pdf

NameSpaces - Processes

Currently, in Linux there are 6 namespaces:

  1. uts: separation of values provided by uname
  2. pid: moltiplication of Process Addressing Spaces
  3. ipc: separation of IPC structures (mainly Message Queue)
  4. mnt: isolating mount point
  5. net: isolating network resources
  6. usr: separation of users between containers and guest system

See also:

https://lwn.net/Articles/531114/

http://man7.org/linux/man-pages/man7/namespaces.7.html

 

CGroups - Resourses

Currently, in Linux there are x Control Groups:

 

See also:

https://lwn.net/Articles/604609/

http://man7.org/linux/man-pages/man5/systemd.cgroup.5.html

http://www.janoszen.com/2013/02/06/limiting-linux-processes-cgroups-expl...

 

Docker - Security

https://docs.docker.com/engine/security/security/