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

 

posted @ 2022-04-26 18:05  huangyn  阅读(49)  评论(0)    收藏  举报