Docker基础-4-Docker架构和底层技术实现初探
前面,不管你是win10安装docker环境还是,在一个虚拟机的centos7上安装docker,我默认你已经学会了docker的安装。在开始正式学习docker的相关概念和知识之前,我们来简单了解和学习了docker架构和底层技术实现。先从宏观上过一遍docker的架构和底层技术实现,后续文章慢慢学习docker具体知识,后面学习,我们会慢慢理解docker的架构和一些底层技术。
前面,不管你是win10安装docker环境还是,在一个虚拟机的centos7上安装docker,我默认你已经学会了docker的安装。在开始正式学习docker的相关概念和知识之前,我们来简单了解和学习了docker架构和底层技术实现。先从宏观上过一遍docker的架构和底层技术实现,后续文章慢慢学习docker具体知识,后面学习,我们会慢慢理解docker的架构和一些底层技术。
首先要强调的是docker,也就是容器技术不是一个创新的技术,因为容器早在很早之前就提出了这个概念,最早是在linux上,而且docker很多底层技术实现都是依赖了linux的底层技术。
Docker平台
- Docker提供了一个开发、打包、运行app的平台
- Docker把app和底层infrastructure隔离开来
上面这两个特点是我们从整体上得到的。
Docker Engine
什么是Docker Engine, docker Engine是docker平台一个很重要的、核心组件。
上面这个图,分成了三层。
1)后台进程(dockerd)
这个后台进程dockerd,有点相当于linux中的内核,我们通过查看进程可以找到这个dockerd进程是在运行的。
Dockerd服务主要管理网络,数据存储,容器和镜像。
2)REST API
我们之所以能通过docker –v 查找出来docker的版本号,就是因为调用了接口。
Docker就是采用了C/S架构,client端就是我们输入docker –v的机器,后台就是dockerd这个server,通过REST API来处理各种请求。例如容器和镜像的操作管理,这些docker命令其实就是一个个API。
3)Client docker CLI
CLI就是命令行接口,这个叫docker CLI, 就好像shell CLI, 之所以,我们在各种命令前面都加上docker,就是为了和其他CLI区分开来。例如和shell区分,有些公司的SDK也提供了类似的 CLI. 这个是一个客户端组件,提供用户输入命令并显示请求结果的一个组件。
Docker 架构
对着这张图,和你自己安装的centos 虚拟机,应该能明白一些了吧。
- 我们虚拟机中图中的Client和DOCKER_HOST其实在一台机器上
- Registry就是docker镜像仓库中心,可以是hub.docker.com这个,也可以是自己公司自定义的镜像仓库。
- 镜像可以制作好push到远程镜像仓库,也可以从远程仓库pull到本地机器。
底层技术实现
Namespaces:
做隔离pid, net,ipc,mnt,uts
Control group
做资源限制
Union file systems
容器和镜像分层
这三个技术其实都是Linux早就在运用的技术,现在不懂,没关系。这需要很强Linux知识才能知道这三个技术。
更多推荐
所有评论(0)