Docker 容器体系结构及特点
Docker 是一个应用容器引擎,通过Docker ,管理员可以非常方便地对容器进行管理。Docker 基于Go 语言开发,并且遵从Apache 2.0 开源协议。
Docker 提供了对容器镜像的打包封装功能。利用Docker ,开发者可以将他们开发的应用系统以及依赖打包起来,放到一个轻量级的、可移植的容器中,然后发布到任何的Linux 或者Windows 上面。这样的话,Docker 就统一了整个开发、测试和部署的环境和流程,极大地减少运维成本。
1. Docker 容器体系结构
Docker 容器的运行逻辑如图1-7 所示,Docker 使用客户端/ 服务器(C/S )架构模式,Docker 守护进程(Docker daemon )作为Server 端接收Docker 客户端的请求,并负责创建、运行和分发Docker 容器。Docker 守护进程一般在Docker 主机后台运行,用户使用Docker 客户端直接跟Docker 守护进程进行信息交互。

图1-7 Docker 体系结构
因此,Docker 体系结构重点由以下部分组成:
(1 )Docker 客户端:用于与Docker 守护进程(Docker Daemon )建立通信的客户端。Docker 客户端只需要向Docker 服务器或者守护进程发出请求指令(Docker 构建、Docker 拉取和Docker 启动等指令),服务器或者守护进程将完成所有工作并返回结果。
如橙色(颜色请参加配套资源中给出的彩图文件)流程所示,执行docker build (构建)指令会根据Docker 文件构建一个镜像存放于本地Docker 主机。
如绿色流程所示,执行docker pull (拉取)指令会从云端镜像仓库拉取镜像至本地Docker 主机,或将本地镜像推送至远端镜像仓库。
如蓝色流程所示,执行docker run (启动)指令会将镜像安装至容器并启动容器。
(2 )Docker 主机:一个物理或者虚拟的机器,用于执行Docker 守护进程和容器。
(3 )Docker 守护进程:接收并处理Docker 客户端发送的请求,监测Docker API 的请求和管理Docker 对象,比如镜像、容器、网络和数据卷。
2. Docker 容器三大特点
整体来看,Docker 容器具有以下三大特点:
l 轻量化:一台主机上运行的多个Docker 容器可以共享主机操作系统内核;启动迅速,只需占用很少的计算和内存资源。
l 标准开放:Docker 容器基于开放式标准,能够在所有主流Linux 版本、Microsoft Windows 以及包括VM 、裸机服务器和云在内的任何基础设施上运行。
l 安全可靠:Docker 赋予应用的隔离性不仅限于彼此隔离,还独立于底层的基础设施。Docker 默认提供最强的隔离,因此应用出现问题也只是单个容器的问题,而不会波及到整台主机。
本文节选自《 Docker 快速入门》, 内容发布获得作者和出版社授权。
