Swarm 模式

注意

Swarm 模式是用于管理 Docker 守护程序集群的高级功能。

如果您打算将 Swarm 用作生产运行时环境,请使用 Swarm 模式。

如果您不打算使用 Swarm 进行部署,请改用 Docker Compose。 如果您正在为 Kubernetes 部署进行开发,请考虑使用 Docker Desktop 中的集成 Kubernetes 功能

当前版本的 Docker 包括用于本地管理集群的 Swarm 模式 称为 swarm 的 Docker 引擎。使用 Docker CLI 创建一个 swarm,部署 应用程序服务部署到一个 Swarm,并管理 Swarm 行为。

Docker Swarm 模式内置于 Docker Engine 中。不要混淆 Docker Swarm 模式 与不再积极开发的 Docker Classic Swarm 一起使用。

功能亮点

与 Docker Engine 集成的集群管理

使用 Docker Engine CLI 创建一组 Docker 引擎,您可以在其中部署应用程序 服务业。您不需要其他编排软件来创建或管理 一群。

分散式设计

Docker 引擎不是在部署时处理节点角色之间的差异,而是在运行时处理任何专业化。您可以使用 Docker 引擎。这意味着您可以从单个磁盘构建整个 swarm 镜像。

声明式服务模型

Docker Engine 使用声明性方法来 允许您定义应用程序中各种服务的所需状态 叠。例如,您可以描述一个由 Web 前端组成的应用程序 End Service 与消息排队服务和数据库后端。

缩放

对于每个服务,您可以声明所需的任务数 跑。当您扩展或缩减时,Swarm Manager 会自动适应 添加或删除任务以保持所需状态。

Desired state 对帐

Swarm Manager 节点持续监控 cluster 状态并协调实际状态与 表示期望状态。例如,如果您将服务设置为运行 10 容器的副本,以及托管其中两个副本的工作程序计算机 崩溃时,Manager 会创建两个新副本来替换 坠毁。swarm 管理器将新副本分配给 worker 正在运行和可用。

多主机联网

您可以为 服务业。swarm 管理器会自动为容器分配地址 在覆盖网络上初始化或更新应用程序时。

服务发现

Swarm Manager 节点为 Swarm 中的每个服务分配一个 唯一的 DNS 名称和运行容器的负载均衡。您可以查询每个 容器通过嵌入在集群中的 DNS 服务器运行。

负载均衡

您可以将服务的端口公开给 外部负载均衡器。在内部,swarm 允许您指定如何分发 节点之间的服务容器。

默认安全

召集中的每个节点都强制执行 TLS 互惠 身份验证和加密,以保护自身与所有人之间的通信 其他节点。您可以选择使用自签名根证书或 来自自定义根 CA 的证书。

滚动更新

在推出时,您可以将服务更新应用于节点 增量。swarm 管理器允许您控制服务之间的延迟 部署到不同的节点集。如果出现任何问题,您可以 回滚到服务的先前版本。

下一步是什么?