Docker通过namespace实现了资源隔离,通过cgroups实现了资源限制,通过写时复制机制(copy-on-write)实现了高校的文件操作;
namespace包括:
- UTS(主机名与域名的隔离)
- IPC(信号量、消息队列和共享内存的隔离)
- PID(进程编号的隔离)
- Network(网络设备、网络栈、端口的隔离)
- Mount(挂载点的隔离)
- User(用户和用户组的隔离)
cgroups资源限制:
cgroups可以限制、记录任务组所使用的物理资源(包括CPU、Memory、IO等),为容器实现虚拟化提供了基本保证,作用:
- 资源限制
- 优先级分配
- 资源统计
- 任务控制