容器技术可以实现资源层面上的限制和隔离,之所以可以做到主要是应用了Linux内核所提供的cgroup和namespace技术。
Namespaces命名空间
PID(Process ID)进程隔离
NET(Network)管理网络接口
IPC(InterProcess Communication)管理跨进程通信的访问
MNT(Mount)管理挂载点
cgroup技术主要作用:管理资源的分配、限制;
namespace技术主要作用:封装抽象,限制,隔离,使命名空间内的进程。
Linux在内核中通过namespaces进行资源隔离,原生支持6种资源隔离,并且直接通过系统调用对外进行输出。
Cgroups控制每个namespace中的资源分配。