OS Support

Linux does not have support for containers.

  • The kernel does not recognize the concept of containers.

Containers are a set of configurations that define an environment that is applied to a process (and its children).

  • Namespace: isolation and virtualization of each tenant.

  • Cgroups: controls the resources of each tenant (CPU, RAM, IO).

Subjacent technologies

  • Namespaces.

    • (mnt, pid, net, ipc, uts/hostname, user ids).

  • Cgroups.

    • (cpu, memory, disk, I/O - resource management).

  • AppArmor, SELinux.

    • (security/ access control).

  • Seccomp.

    • Computation isolation.

  • CHROOT.

    • File system isolation.

Namespaces

The mechanism used to isolate and virtualize the systems resources.

  • Processes in a namespace can't see the remnant resources.

    • They see their namespace as the host.

Network namespace.

  • A mechanism that allows the creation of network resources almost independently.

    • Network interface, routing tables.

  • A network interface can only belong to a single namespace.

PID namespace.

  • A restricted namespace with private processes identifiers

    • Host processes are invisible.

Cgroup

The mechanism used to restring or monitor the quantity of used resources by "access groups".

  • The processes can be organized in groups, and in this way, control the access to resources.

    • Example: CPU scheduling control.

      • Limit the amount of time a group of processes can use with the CPU.

    • Other uses:

      • Memory, I/O, pids, ...

Last updated