底层技术
都是 Linux 已经有的技术,没有别的创新
- Namespaces:做隔离pid、net、ipc、mnt、uts
- Control groups:做资源限制(这个容器用200M内存,另一个容器用300M)
- Union file Systems:Container 和 image 的分层
架构
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210613233435944.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzk3MjQzNw==,size_16,color_FFFFFF,t_70)
docker 把 app 和底层的 infrastructure 隔离开来
docker 引擎的架构:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210613233333185.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzk3MjQzNw==,size_16,color_FFFFFF,t_70)
- 后台进程(dockerd)
- REST API
- CLI 接口(docker)
后台与前台通过 REST API 交互
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210613233941780.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzk3MjQzNw==,size_16,color_FFFFFF,t_70)
左:Client
中:Server
右:docker Hub