Docker容器技术简介

Docker依赖的Linux内核特性
  • namespaces命名空间
  • Control groups(cgroups)控制组
namespaces 命名空间

对于编程语言来说,命名空间提供的是封装性,使得代码有效的进行隔离。
对于操作系统来说,命名空间提供的是系统资源的隔离(进程、网络、文件系统···)

Docker使用了5种命名空间进行资源隔离

1. PID(process ID) 进程隔离
2. NET(Network) 管理网络接口
3. IPC(Inter Process Communication) 管理跨进程通信的访问
4. MNT(Mount) 管理挂载点
5. UTS(Unix Timesharing System) 隔离内核和版本标识
Control groups 控制组

用于管理通过命名空间隔离的资源。

cgroups的能力

1. 资源限制
2. 优先级设定
3. 资源计量
4. 资源控制

Docker容器的能力

文件系统隔离:每个容器都有自己的root文件系统
进程隔离:每个容器都运行在自己的进程环境中
网络隔离:容器间的虚拟网络接口和IP地址都是分开的
资源隔离和分组:使用cgroups将CPU和内存之类的资源独立分配给每个Docker容器

你可能感兴趣的:(Docker容器技术简介)