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容器具有以下三大特点:
(1)轻量化:一台主机上运行的多个Docker容器可以共享主机操作系统内核;启动迅速,只需占用很少的计算和内存资源。
(2)标准开放:Docker容器基于开放式标准,能够在所有主流Linux版本、Microsoft Windows以及包括VM、裸机服务器和云在内的任何基础设施上运行。
(3)安全可靠:Docker赋予应用的隔离性不仅限于彼此隔离,还独立于底层的基础设施。Docker默认提供最强的隔离,因此应用出现问题也只是单个容器的问题,而不会波及到整台主机。
本文节选自《Docker快速入门》,内容发布获得作者和出版社授权。