开篇

  • Docker提供了一个开发,打包,运行APP的平台
  • 把APP和底层infrastructure隔离开来

    从上面的简图我们可以看到,docker把物理设备 / 虚拟设备和Application隔离开来。

Docker Engine

docker 的系统架构图 docker架构组成有哪些_Server


Docker Engine包含的东西有:

* 后台进程(dockerd)

* REST API Server

* CLI 接口(dockerd)

docker的架构是C/S架构,docker的Client和Server即(dockerd)之间通过REST API Server进行通信。

dockerd主要是维护后台的一些常见概念的操作,例如:image、container的管理,网络以及存储的管理。

在CentOS中运行 sudo docker version命令,可以看到Client 以及 Server 的一些信息:

docker 的系统架构图 docker架构组成有哪些_Docker_02

Docker架构总览

docker 的系统架构图 docker架构组成有哪些_Server_03


* 左边Client 是我们命令行里常用的一些命令。

* 中间Docker Host,是安装Docker之后的机器,只要包括Container 和 images。Docker Host提供的REST API 可以供Client去使用。

* 最右边是docker的Registry,是用于存储docker公共镜像的服务器,类似于GitHub。

Docker底层技术支持

Docker底层是依赖于Linux已经存在很多年的技术支持,比如说:
* Namespaces:做隔离pid,net,ipc,mnt,uts
* Control grups:做资源限制
* Union file systems:Container 和 image的分层