1 基本概念
1.1 Docker系统组成
整体Docker的系统包括以下主要组成部分,包括Dockerclient、Dockerdaemon、Docker registry、Docker镜像、Docker容器,他们之间的关系如下图:
Docker架构主要分为客户端和服务端,客户端负责发起请求,服务端负责接受,解析和处理请求,图示中的Docker Client即为Docker客户端的一个命令行工具,用户通过Docker Client与Docker Daemon进行通信并返回结果给用户。也可以使用其他工具通过Docker Api 与Docker Daemon通信。
拿一个简单的拉取镜像并运行容器的过程举例便于大家更好的理解容器系统架构。从上图中我们可以看到,当daemon接收到由client发起的docker run等运行容器指令时,docker系统先会由registry(本地镜像仓库)中拉取镜像,图示中拉取了ubuntu:14.04镜像。当由 ubuntu:14.04 镜像启动容器时,ubuntu:14.04 镜像的镜像层layer内容将作为容器的 rootfs;而 ubuntu:14.04 镜像的 yaml文件(json格式),会由 Docker daemon 解析成为该docker运行起来后的各项配置,并提取出其中的容器执行入口 CMD 信息,以及容器进程的环境变量 ENV 信息,最终初始化容器进程。当然,容器进程的执行入口来源于镜像提供的 rootfs。
在传统