六种名称空间
namespace | 系统调用参数 | 隔离内容 | 内核版本 |
---|---|---|---|
UTS | CLONE_NEWUTS | 主机名和域名 | 2.6.19 |
IPC | CLONE_NEWIPC | 信号量,消息队列,共享内存 | 2.6.19 |
Mount | CLONE_NEWNS | 挂载点(文件系统) | 2.4.19 |
PID | CLONE_NEWPID | 进程编号 | 2.6.24 |
Network | CLONE_NEWNET | 网络设备,网络栈,端口 | .6.29 |
User | USER | 用户和用户组 | 3.8 |
简单来说,容器技术就是一种资源的隔离技术,就是通过对以上内核的隔离,来实现的。
隔离限制
有了资源隔离,肯定要对隔离出来的出来的资源进行限制,不能放任某一个隔离环境对资源的无限消耗使用。最常见的资源就是CPU和内存了。
比如一个宿主机共有32C64G,在他上面隔离出了两个名称空间,我们可以按照比例给这两个名称空间分配资源,比如说CPU,各占50%,此时两个名称空间内的进程就只能使用16个CPU的资源,超过16个CPU,可能就会挤占其他的名称空间的CPU,如果其他名称空间没