首页>软件资讯>常见问题

常见问题

Docker组件

发布时间:2024-06-14 11:16:27人气:62

接下来,我们来介绍一下 Docker 组件。首先,我们要讲一下 Docker 服务器和客户端。Docker 实际上是一个客户端-服务器(CS)架构。CS 架构指的是客户端到服务器的架构。让我们看一下下面这张图。

客户端和主机连接图.png

首先,我们有一个 Docker 守护进程,可以理解为 Docker 的服务端。通过这个守护进程,我们管理一些 Docker 容器。这整个包括 Docker 守护进程和 Docker 容器的主机,我们称之为 Docker 主机,或者宿主机。这里还会有一些 Docker 的客户端,通过这些客户端连接 Docker 守护进程,然后通过客户端操作容器。这些客户端可以在 Docker 主机内部,也可以是远程的,不一定在同一台主机上。通过远程访问 Docker 守护进程,再操作容器,这就是 Docker 服务器和客户端的简单介绍。

接下来,我们来讲一下 Docker 的镜像和容器。对于 Docker 来说,镜像和容器是两个比较重要的概念。首先,镜像是构建 Docker 的基石。用户基于镜像来运行自己的容器,也就是说,我们的容器实际上都是通过镜像来运行的。比如,我们正常运行一个 MySQL 时,使用的是一个镜像,但若要运行三个 MySQL,就会有三个容器,但镜像仍然是同一个。

三个数据库.png

所以,我们可以将镜像简单地理解为容器的一种模板。它基于联合文件系统构建而成。我们可以将镜像看作是类,而容器则是对象,这样理解会更直观一些。镜像是通过一系列指令一步步构建而成的,它也可以被视作容器的源代码。此外,镜像的体积通常比较小。


然后,非常方便,易于分享、存储和更新。接着,我们再来说说容器。那容器其实是什么呢?容器就是放置我们对应的一些应用程序或者服务的地方。这些就是我们的容器,就像之前提到的那些集装箱。对于我们来说,这些集装箱就是一个容器。容器是由镜像启动起来的,容器中可以运行一个或多个进程。镜像,我们可以理解为我们开发生命周期中的构建和打包阶段,而容器则是启动和执行阶段。这是我们需要理解的。容器其实就是我们镜像的一个格式,或者说是一些列标准操作或执行环境。不再多说。

运行环境.png

然后,再往下,有一个注册中心。Docker 使用注册中心来保存用户构建的镜像。其中公共的,就像我们的 Docker Hub,类似于 GitHub。我们可以在上面注册账号,然后分享并保存自己的镜像,或者下载别人已经分享过的镜像来使用。这在公司内部可能会用到,就像我们的 Maven 仓库一样,有公用的仓库供公司内部使用,而一些公用的依赖,我们可以去中央仓库下载。

我们也可以来看一下 Docker Hub,它有一个主界面。在这里,我们可以进行登录,然后直接搜索我们需要的镜像。你看,这里有一些比较主流的镜像,比如 nginx、MongoDB、Node.js 等等。这些都是其他用户直接分享上去的镜像,包括 MySQL 等等,非常多。这些都是其他用户已经分享过的对象,我们可以直接去下载这些镜像,通过 Docker 可以直接下载这些镜像。

图片

这个是公用的 Docker Hub。然后,我们再回顾一下。首先,我们的服务器和客户端已经讲过了。主要是有一个 Docker 守护进程,通过 Docker 守护进程去管理我们的容器。而 Docker 守护进程可以理解为我们的服务端,然后会有客户端去连接服务端,然后去操作我们的容器。存放我们多个容器的主机一般称为 Docker 主机或者宿主机。然后,我们就会有一个 Docker 的镜像和容器。我们是基于镜像来运行自己的容器的。我们可以理解为镜像就是我们的一个类,容器就是我们的一个对象。或者说,镜像是我们 Docker 生命周期里面的一个构建和打包阶段,而容器则是我们的启动和执行阶段。最后,我们会有一个注册中心,可以去上传我们的镜像,或者去下载别人已经分享过的一些镜像。好,这就是我们整个 Docker 组件的介绍。



上一条:Docker安装

下一条:容器与虚拟机比较