Docker 内部组件
Docker 是一个实现了轻量级虚拟化的平台,这个平台主要由以下的几部分组成:
客户端(Docker Client)
守护进程(Docker daemon)
镜像(Docker Image)
容器(Docker Container)
镜像仓库(Docker Registry)
Docker 内部组件之间的相互关系如图 3 所示。Docker 守护进程是整个 Docker 组成部分的核心,也称作服务端。Docker 守护进程可以部署在本地,也可以部署在远程。而 Docker 客户端则通过 RESTFul 形式的 API 与 Docker 守护进程通信。镜像仓库可以为 Docker 客户端提供能够实现各种功能的只读镜像,通过这些镜像可以创建出一个或多个容器。每个容器都是运行在 Docker 客户端中的一个独立进程。
1 客户端
Docker 客户端与守护进程的交互情况如图 4 所示。Docker 客户端是通过命令行或者其他的工具来使用 API。当 Docker 客户端向 Docker 服务器发送 Docker 命令时,由 Docker daemon 进程负责处理 Docker 客户端以 RESTFul 形式调用的 API 命令。当然我们可以在宿主机上同时运行 Docker 客户端和守护进程,也可以通过本地 Docker 客户端连接到远程宿主机上的 Docker 守护进程。
2 守护进程
Docker 守护进程是创建和运行容器的 Linux 进程,守护进程可以绑定本地的端口并提供 API 服务,同时也支持远程访问及控制。当 Docker 守护进程接收到指令后,将由 daemon 进程执行镜像的编译、容器的启动/停止以及分发。
3 镜像
Docker 镜像是用来创建 Docker 容器的模板,用户是基于镜像来运行自己的容器。通常镜像的体积都很小,便于分享、存储和更新。
4 容器
容器是独立运行的一个或一组应用。容器是基于镜像启动并运行的,在容器中可以运行一个或多个进程。当容器启动完成后,用户就可以使用容器提供的服务或在容器中完成特定的软件安装。镜像可以看作是 Docker 生命周期中的构建或者是打包阶段,而容器则被认为是在启动或者是执行阶段。
5 镜像仓库
Docker 镜像仓库是用来保存镜像的,同源码版本控制中的代码与代码仓库的关系。Docker 的镜像仓库可以分为公有和私有仓库。由 Docker 公司运营的公有镜像仓库是 Docker Hub(https://hub.docker.com/)。用户可以建立自己的账号,分享或保存自己的镜像。
版权声明: 本文为 InfoQ 作者【混沌畅想】的原创文章。
原文链接:【http://xie.infoq.cn/article/10e9b06f780afd5ce66daba20】。文章转载请联系作者。
评论