Swarm mode

注意

Swarm mode 是用于管理 Docker 守护进程集群的高级功能。

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

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

当前版本的 Docker 包含 Swarm mode,用于原生管理称为 swarm 的 Docker Engine 集群。使用 Docker CLI 可以创建 swarm、将应用程序服务部署到 swarm 并管理 swarm 行为。

Docker Swarm mode 内置于 Docker Engine 中。请勿将 Docker Swarm mode 与不再积极开发的 Docker Classic Swarm 混淆。

特性亮点

与 Docker Engine 集成的集群管理

使用 Docker Engine CLI 可以创建 Docker Engine swarm 集群,您可以在其中部署应用程序服务。您无需额外的编排软件即可创建或管理 swarm。

去中心化设计

与在部署时区分节点角色不同,Docker Engine 在运行时处理任何特殊化。您可以使用 Docker Engine 部署管理者节点和工作者节点这两种节点。这意味着您可以从单个磁盘镜像构建整个 swarm。

声明式服务模型

Docker Engine 采用声明式方法,让您定义应用程序堆栈中各种服务的期望状态。例如,您可以描述一个由 Web 前端服务、消息队列服务和数据库后端组成的应用程序。

扩展

对于每个服务,您可以声明要运行的任务数量。当您扩展或缩减时,swarm 管理器会自动通过添加或移除任务来适应,从而维持期望状态。

期望状态调谐

swarm 管理者节点不断监控集群状态,并协调实际状态与您表达的期望状态之间的任何差异。例如,如果您设置一个服务运行 10 个容器副本,并且托管其中两个副本的工作者机器崩溃,则管理器会创建两个新的副本来替换崩溃的副本。swarm 管理器会将新副本分配给正在运行且可用的工作者节点。

多主机网络

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

服务发现

Swarm 管理者节点为 swarm 中的每个服务分配唯一的 DNS 名称,并对正在运行的容器进行负载均衡。您可以通过嵌入在 swarm 中的 DNS 服务器查询 swarm 中运行的每个容器。

负载均衡

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

默认安全

swarm 中的每个节点都会强制执行 TLS 双向认证和加密,以确保自身与所有其他节点之间的通信安全。您可以选择使用自签名根证书或自定义根 CA 的证书。

滚动更新

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

下一步?

页面选项