Docker 架构

2025年3月17日 | 阅读 3 分钟

在学习 Docker 架构之前,首先,您应该了解 Docker Daemon。

什么是 Docker daemon?

Docker daemon 运行在主机操作系统上。它负责运行容器以管理 docker 服务。 Docker daemon 与其他守护程序通信。 它提供各种 Docker 对象,例如镜像、容器、网络和存储。

Docker 架构

Docker 遵循客户端-服务器架构,其中包括三个主要组件,即 Docker 客户端Docker 主机Docker 注册表

Docker Architecture

1. Docker 客户端

Docker 客户端使用 命令REST API 与 Docker Daemon(服务器)通信。 当客户端在 docker 客户端终端上运行任何 docker 命令时,客户端终端会将这些 docker 命令发送到 Docker daemon。 Docker daemon 从 docker 客户端以命令和 REST API 请求的形式接收这些命令。

注意:Docker 客户端能够与多个 docker daemon 通信。

Docker 客户端使用命令行界面 (CLI) 运行以下命令 -

docker build

docker pull

docker run

2. Docker 主机

Docker 主机用于提供执行和运行应用程序的环境。 它包含 docker daemon、镜像、容器、网络和存储。

3. Docker 注册表

Docker 注册表管理和存储 Docker 镜像。

Docker 中有两种类型的注册表 -

公共注册表 - 公共注册表也称为 Docker hub

私有注册表 - 它用于在企业内共享镜像。

Docker 对象

有以下 Docker 对象 -

Docker 镜像

Docker 镜像是用​​于创建 Docker 容器的 只读二进制模板。 它使用私有容器注册表在企业内共享容器镜像,并使用公共容器注册表在全世界共享容器镜像。 元数据也由 docker 镜像用于描述容器的功能。

Docker 容器

容器是 Docker 的结构单元,用于容纳运行应用程序所需的所有软件包。 容器的优点是它需要的资源非常少。

换句话说,我们可以说镜像是一个模板,而容器是该模板的副本。

Docker Architecture

Docker 网络

使用 Docker 网络,可以进行隔离包的通信。 Docker 包含以下网络驱动程序 -

  • Bridge - Bridge 是容器的默认网络驱动程序。 当多个 docker 与同一 docker 主机通信时使用它。
  • Host - 当我们不需要容器和主机之间的网络隔离时使用它。
  • None - 它禁用所有网络。
  • Overlay - Overlay 为 Swarm 服务提供相互通信。 它使容器能够在不同的 docker 主机上运行。
  • Macvlan - 当我们想为容器分配 MAC 地址时使用 Macvlan。

Docker 存储

Docker 存储用于在容器上存储数据。 Docker 提供了以下存储选项 -

  • 数据卷 - 数据卷提供了创建持久性存储的能力。 它还允许我们命名卷、列出卷和与卷关联的容器。
  • 目录挂载 - 它是 docker 存储的最佳选项之一。 它将主机的目录挂载到容器中。
  • 存储插件 - 它提供了连接到外部存储平台的能力。

下一主题Docker 安装