1 Namespace
容器实际上是一个独立的操作系统的工作空间,Namespace 就是将用来提供独立的工作空间,保证每个容器不能访问到自身以外的不允许访问到地方,在linux上使用的namespace有以下几种:
- The
pid
namespace: 进程独立 - The
net
namespace: 管理网络接口 - The
ipc
namespace: 管理访问进程间通信资源 - The
mnt
namespace: 管理挂载点 - The
uts
namespace: Unix时分系统,脑症内核独立和版本识别
2 control group 控制组cgroup
保证多个container 只是用规定的硬件主机的资源,是一种硬件资源管理工具资源
3 统一文件系统
创建不同的分层,使得每一层都很轻和快,这也成了镜像管理当中不可缺少的重要技术
4 容器格式
docker 将这些组件包装在一起,我们称之为容器格式,默认的容器格式:libcontainer ,未来docker 将会支持其他的多种容器格式