Docker 组件

1.3.1 Docker 客户端和服务器
Docker 是一个客户端-服务器(C/S) 架构程序。 Docker 客户端只需要向 Docker 服务器
或者守护进程发出请求, 服务器或者守护进程将完成所有工作并返回结果。 Docker 提供了
一个命令行工具 Docker 以及一整套 RESTful API。 你可以在同一台宿主机上运行 Docker 守护
进程和客户端,也可以从本地的 Docker 客户端连接到运行在另一台宿主机上的远程 Docker
守护进程。
Docker 组件

1.3.2 Docker 镜像
镜像是构建 Docker 的基石。 用户基于镜像来运行自己的容器。镜像也是 Docker 生命周
期中的“构建”部分。 镜像是基于联合文件系统的一种层式结构,由一系列指令一步一步构
建出来。例如:
添加一个文件;
执行一个命令;
打开一个窗口。
也可以将镜像当作容器的“源代码”。镜像体积很小, 非常“便携”,易于分享、 存储和更
新。
1.3.3 Registry(注册中心)
Docker 用 Registry 来保存用户构建的镜像。 Registry 分为公共和私有两种。 Docker 公司
运营公共的 Registry 叫做 Docker Hub。用户可以在 Docker Hub 注册账号, 分享并保存自己的
镜像(说明:在 Docker Hub 下载镜像巨慢, 可以自己构建私有的 Registry) 。
1.3.4 Docker 容器
Docker 可以帮助你构建和部署容器, 你只需要把自己的应用程序或者服务打包放进容
器即可。容器是基于镜像启动起来的, 容器中可以运行一个或多个进程。 我们可以认为, 镜
像是 Docker 生命周期中的构建或者打包阶段, 而容器则是启动或者执行阶段。 容器基于
镜像启动,一旦容器启动完成后, 我们就可以登录到容器中安装自己需要的软件或者服务。

Docker 组件

所以 Docker 容器就是:
一个镜像格式;
一些列标准操作;
一个执行环境。
Docker 借鉴了标准集装箱的概念。标准集装箱将货物运往世界各地, Docker 将这个模
型运用到自己的设计中, 唯一不同的是: 集装箱运输货物, 而 Docker 运输软件。
和集装箱一样, Docker 在执行上述操作时, 并不关心容器中到底装了什么, 它不管是
web 服务器, 还是数据库, 或者是应用程序服务器什么的。 所有的容器都按照相同的方式将
内容“装载”进去。
Docker 也不关心你要把容器运到何方:我们可以在自己的笔记本中构建容器, 上传到
Registry, 然后下载到一个物理的或者虚拟的服务器来测试,在把容器部署到具体的主机中。
像标准集装箱一样, Docker 容器方便替换,可以叠加, 易于分发, 并且尽量通用。
使用 Docker, 我们可以快速的构建一个应用程序服务器、 一个消息总线、 一套实用工
具、 一个持续集成(CI) 测试环境或者任意一种应用程序、 服务或工具。我们可以在本地构
建一个完整的测试环境,也可以为生产或开发快速复制一套复杂的应用程序栈。