docker总体架构
总架构


DockerClient
-
简介
- 与Docker Daemon建立通信的最佳途径
- 通过client发送请求
DockerDaemon
-
简介
-
具备服务端的功能,接受&&处理请求
-
所有任务有engine来完成
-
每一项工作都以一个Job形式存在
- job种类因请求类型不同而多样
-
Docker Registry
-
简介
- 存储容器镜像的仓库
Graph

-
简介
- 容器镜像的保管者
Driver
-
简介
-
docker架构中的驱动模块
-
实现对Dcoker容器运行环境的定制
- 网络环境
- 存储方式
- 容器的执行方式
-
libcontainer
-
简介
-
独立的容器管理解决方案
- namespaces
- cgroups
- capabilities
-
抽象了Linux的内核特性
-
提供完整、明确的接口给Docker Daemon
-
Docker Container
-
简介
- 隔离的运行环境
- 独立的网络栈资源
- 受限的资源
各功能模块实现
Docker Client
-
通信方式
DockerClient和Docker Daemon建立连接并传输请求时,可以通过命令行flag参数的形式,设置安全传输层协议(TLS)的有关参数,保证传输安全
Docker Daemon
Docker Daemon运行时,会在后台启动一个Server,Server负责接受Docker Client发送的请求;接受请求后,Server通过路由与分发调度,找到相应的Handler来处理请求
-
作用
- 接受&&处理请求
- 管理所有的Docker容器
-
架构
-
Docker Server
image.png
-
- 作用
- 接受并调度分发Docker Client发送的请求
- 处理过程
- 通过gorilla/mux,创建一个mux.Router路由器
- 提供请求的路由功能
- 为mux.Router中添加有效的路由项
- 路由项组成
- HTTP请求方法
- PUT
- POST
- GET
- DELETE
- URL
- Handler
- 执行httpSrv.Serve()服务外部请求
- 创建一个httpSrv=http.Server{}
- 参数
- Server的监听地址
- mux.Router
- 在listener上接受Docker Client的访问请求
- 创建一个全新的goroutine来服务
- 读取请求内容
- 对请求进行解析
- 匹配相应的路由项
- 调用相应的Handler来处理
- 处理完后给client进行回复
- Engine
- 简介
Docker中大部分任务的执行都需要Engine协助,并通过Engine匹配相应的Job完成Job的执行
Engine还接管Docker Daemon的某些特定任务。当Docker Daemon遭遇到自身进程需要退出的情况时,Engine还负责完成DockerDaemon退出前的所有善后工作
- docker运行的核心模块
- 存储着大量的容器信息
- 管理着Docker大部分Job的执行
- Job
- 简介
- Engine内部的最基本的工作单元
Docker Regisrty
-
与Docker交互方式
-
搜索镜像
- search
-
下载镜像
- pull
-
上传镜像
- push
-
-
种类
- 共有仓库如Dcokerhub
- 私有仓库-自行搭建
Driver
-
分类
-
graphdriver
image.png
-
- 简介
- 四种文件系统驱动Driver在Doker daemon内部注册
- 容器镜像的管理
- aufs
- btrfs
- devmapper
- 容器volume的管理
- vfs
- 子主题 3
- networkdriver

- 简介
- 完成docker的网络环境的配置
- 为Docker环境创建网桥
- 容器创建前为其分配相应的网络接口资源
- 为容器分配IP、端口、并与宿主机做NAT端口映射
- execdriver

- 简介
- 负责创建容器运行时的命名空间
- 容器资源使用的统计与限制
- 容器内部的真正运行
libcontainer

-
简介
- 设计初衷时希望该库不依靠任何依赖,直接访问内核与容器相关的系统调用
- 提供了一系列接口满足上层建筑对容器管理需求
Docker Container

-
简介
-
容器是最终的交付模式
- DockerDaemon进行管理
- libcontainer负责执行
- 最终创建dockrer容器
-
-
用户配置模式
- 指定容器镜像,自定义rootfs文件系统
- 指定物理资源配额,限制资源使用
- 配置网络及其安全策略
- 指定运行命令,指定指定任务
网友评论