接下来,我们来介绍一下 Docker 组件。首先,我们要讲一下 Docker 服务器和客户端。Docker 实际上是一个客户端-服务器(CS)架构。CS 架构指的是客户端到服务器的架构。让我们看一下下面这张图。
首先,我们有一个 Docker 守护进程,可以理解为 Docker 的服务端。通过这个守护进程,我们管理一些 Docker 容器。这整个包括 Docker 守护进程和 Docker 容器的主机,我们称之为 Docker 主机,或者宿主机。这里还会有一些 Docker 的客户端,通过这些客户端连接 Docker 守护进程,然后通过客户端操作容器。这些客户端可以在 Docker 主机内部,也可以是远程的,不一定在同一台主机上。通过远程访问 Docker 守护进程,再操作容器,这就是 Docker 服务器和客户端的简单介绍。
接下来,我们来讲一下 Docker 的镜像和容器。对于 Docker 来说,镜像和容器是两个比较重要的概念。首先,镜像是构建 Docker 的基石。用户基于镜像来运行自己的容器,也就是说,我们的容器实际上都是通过镜像来运行的。比如,我们正常运行一个 MySQL 时,使用的是一个镜像,但若要运行三个 MySQL,就会有三个容器,但镜像仍然是同一个。
所以,我们可以将镜像简单地理解为容器的一种模板。它基于联合文件系统构建而成。我们可以将镜像看作是类,而容器则是对象,这样理解会更直观一些。镜像是通过一系列指令一步步构建而成的,它也可以被视作容器的源代码。此外,镜像的体积通常比较小。
然后,非常方便,易于分享、存储和更新。接着,我们再来说说容器。那容器其实是什么呢?容器就是放置我们对应的一些应用程序或者服务的地方。这些就是我们的容器,就像之前提到的那些集装箱。对于我们来说,这些集装箱就是一个容器。容器是由镜像启动起来的,容器中可以运行一个或多个进程。镜像,我们可以理解为我们开发生命周期中的构建和打包阶段,而容器则是启动和执行阶段。这是我们需要理解的。容器其实就是我们镜像的一个格式,或者说是一些列标准操作或执行环境。不再多说。
然后,再往下,有一个注册中心。Docker 使用注册中心来保存用户构建的镜像。其中公共的,就像我们的 Docker Hub,类似于 GitHub。我们可以在上面注册账号,然后分享并保存自己的镜像,或者下载别人已经分享过的镜像来使用。这在公司内部可能会用到,就像我们的 Maven 仓库一样,有公用的仓库供公司内部使用,而一些公用的依赖,我们可以去中央仓库下载。
我们也可以来看一下 Docker Hub,它有一个主界面。在这里,我们可以进行登录,然后直接搜索我们需要的镜像。你看,这里有一些比较主流的镜像,比如 nginx、MongoDB、Node.js 等等。这些都是其他用户直接分享上去的镜像,包括 MySQL 等等,非常多。这些都是其他用户已经分享过的对象,我们可以直接去下载这些镜像,通过 Docker 可以直接下载这些镜像。
图片
这个是公用的 Docker Hub。然后,我们再回顾一下。首先,我们的服务器和客户端已经讲过了。主要是有一个 Docker 守护进程,通过 Docker 守护进程去管理我们的容器。而 Docker 守护进程可以理解为我们的服务端,然后会有客户端去连接服务端,然后去操作我们的容器。存放我们多个容器的主机一般称为 Docker 主机或者宿主机。然后,我们就会有一个 Docker 的镜像和容器。我们是基于镜像来运行自己的容器的。我们可以理解为镜像就是我们的一个类,容器就是我们的一个对象。或者说,镜像是我们 Docker 生命周期里面的一个构建和打包阶段,而容器则是我们的启动和执行阶段。最后,我们会有一个注册中心,可以去上传我们的镜像,或者去下载别人已经分享过的一些镜像。好,这就是我们整个 Docker 组件的介绍。
上一条:Docker安装
下一条:容器与虚拟机比较