容器虚拟化实现的原理
要想实现容器虚拟化,跟传统的虚拟机虚拟化有着本质的区别,容器虚拟化,需要进行以下六种资源的隔离,而这些隔离需要linux系统内核来支持,
下面简单整理了需要被隔离的资源及内核支持的情况
Linux Namespaces来实现:
1、主机名和域名
简称:UTS
内核版本:2.6.19
系统调用参数:CLONE_NEWUTS
2、信号量、消息队列和共享内存
简称:IPC-进程间通讯
内核版本:2.6.19
系统调用参数:CLONE_NEWIPC
3、进程编号
简称:PID
内核版本:2.6.24
系统调用参数:CLONE_NEWPID
4、网络设备、网络栈和端口等
简称:NETWORK
内核版本:2.6.29
系统调用参数:CLONE_NEWNET
5、挂载点(文件系统)
简称:MOUNT
内核版本:2.4.19
系统调用参数:CLONE_NEWNS
6、用户
简称:USER
内核版本:3.8
系统调用参数:CLONE_NEWUSER