Docker是一个客户端服务器(Client-Server)架构。Docker客户端和Docker守护进程交流,而Docker的守护进程是运作Docker的核心,起着非常重要的作用(如构建、运行和分发Docker容器等)。
视频讲解如下:
Docker客户端和Docker的守护进程,可以运行在同样的系统上,也可以是不同的系统上。用户可以连接一个Docker客户端到一个远程Docker守护进程中。Docker客户端和守护进程,通过sockets或RESTful API进行沟通。
我们在使用Docker创建容器时,需要有镜像。镜像是一个只读的模板。而存放镜像的地方叫作“镜像仓库”。镜像仓库,可以是公有的镜像仓库(例如官方提供的公有镜像仓库Docker Hub),也可以是私有的镜像仓库(例如Harbor)。下图展示了Docker的体系架构。
下面将详细介绍Docker体系架构中的每一个组成部分及其功能特性。
一、Docker守护进程
Docker宿主机上运行Docker,实际上运行的是Docker守护进程。用户并不直接和守护进程交互,而是通过Docker客户端的命令来和它进行交互。
二、Docker客户端
通常指Docker提供的命令行工具,是Docker最基本的用户接口。用户通过Docker客户端提交Docker指令,并最终由Docker守护进程接收并执行。Docker也有图形化的客户端工具。
三、Docker镜像
一个Docker镜像是一个只读的模板。例如,一个镜像可以包含一个CentOS的操作系统、一个MySQL的数据库和一个Tomcat的应用服务器。镜像被用来创建Docker容器。Docker提供了一个简单的方式来构建一个新的镜像或更新一个已经存在的镜像。用户也可以从镜像仓库中下载其他人已经创建好的Docker镜像
四、镜像仓库
Docker的镜像仓库用于保存Docker镜像,它可以是公共存储的地方,也可以是私有的存储地方。
- 公共的Docker镜像仓库由Docker Hub提供,它提供了一个你可以使用的已有镜像的集合。这些集合中的镜像可以是你自己创建的,也可以是别人创建的。
- 私有的Docker镜像仓库需要自己在私有环境中,例如在企业内网中自行搭建。Harbor是一个典型的私有的Docker镜像仓库。
五、Docker容器
通过Docker的镜像可以创建Docker的容器。Docker的容器可以保存任何东西,而这些东西是运行一个应用程序所必需的。可以把Docker的容器看成是一个虚拟机。Docker容器可以被运行、开启、停止、移动和删除。每一个容器都是一个分离的和安全的应用平台。Docker容器是Docker的运行组件。