docker原理
参考: https://blog.csdn.net/crazymakercircle/article/details/120747767
https://www.cnblogs.com/i0day/articles/9060557.html
https://zhuanlan.zhihu.com/p/257954941
https://zhuanlan.zhihu.com/p/47571649
1.docker架构
引用官方对架构的说明(https://www.docker.org.cn/docker/192.html)

2.docker的技术核心

namespace 命名空间
control group 控制组
UnionFS 联合文件系统
2.1 命名空间namespace
基于linux隔离技术,docker使用了5种namespace:pid、net、mount、IPC、UTS,从而实现进程、网络、文件、进程间通信、host和domain的隔离,可以理解为沙箱
关于namespace的每一项技术说明 https://zhuanlan.zhihu.com/p/47571649
关于docker的4种网络模式 https://www.cnblogs.com/gispathfinder/p/5871043.html

2.2 控制组CGroups
参考 https://www.cnblogs.com/sammyliu/p/5886833.html
https://coolshell.cn/articles/17049.html
主要负责容器资源统计和隔离
linux control group主要提供了如下功能:
- Resource limitation: 限制资源使用,比如内存使用上限以及文件系统的缓存限制。
- Prioritization: 优先级控制,比如:CPU利用和磁盘IO吞吐。
- Accounting: 一些审计或一些统计,主要目的是为了计费。
- Control: 挂起进程,恢复执行进程。
2.3 文件系统
参考 https://coolshell.cn/articles/17061.html
用于把多个文件系统『联合』到同一个挂载点,是分层镜像的基础,常用的技术有:
UnionFS、 AUFS(升级版)
BTRFS
centos使用的技术是DeviceMapper

浙公网安备 33010602011771号