设置 Swarm 集群
初始化 Docker Swarm,添加管理节点和工作节点,并检查集群状态
设置 Swarm 集群 是 CoddyKit 上的免费 Docker & DevOps Fundamentals 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Docker & DevOps Fundamentals 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Docker & DevOps Fundamentals 课程共包含 4 节课。
欢迎使用 Docker Swarm 设置功能!
准备好编排您的容器了吗?本课将学习如何将单个 Docker 主机转换为功能强大的 Swarm 集群。
您将了解如何初始化 Swarm、将新机器添加为管理器节点和工作节点,以及如何验证集群的运行状况。

Swarm 设置前提条件
开始之前,请确保您已准备好以下几项:
- Docker Desktop/Engine:安装在您计划使用的所有机器上。
- 网络访问:所有机器必须能够通过网络相互通信。
- 开放端口:Docker Swarm 使用特定端口进行通信。请确保以下端口已开放:
TCP port 2377,用于集群管理通信。TCP & UDP port 7946,用于容器网络覆盖。UDP port 4789,用于覆盖网络流量。
初始化您的第一个 Swarm
要启动新的 Swarm,请选择一台机器作为第一个管理器节点。该节点将处理所有编排任务。
您可以使用 docker swarm init 命令开始操作。该命令会将当前 Docker Engine 转换为 Swarm 管理器。
默认情况下,该命令会使用当前机器的 IP 地址。如果需要,您可以通过 --advertise-addr 指定其他 IP 地址。
演示:初始化 Swarm
让我们初始化一个新的 Swarm。请在选定的管理器机器上运行此命令。初始化完成后,我们将检查其状态。
注意:如果 Docker 无法正确自动检测机器的 IP 地址,您可能需要将 YOUR_MANAGER_IP 替换为机器的实际 IP 地址。
docker swarm init --advertise-addr YOUR_MANAGER_IP
docker node ls了解 Swarm 节点角色
在 Docker Swarm 中,节点具有不同的角色:
- 管理器节点:它们是 Swarm 的核心,负责集群管理、编排服务,并维护应用的期望状态。为了实现高可用性,通常会设置多个管理器节点。
- 工作节点:这些节点负责运行实际的容器化应用。它们接收管理器节点分配的任务并执行这些任务。
单个节点可以同时充当管理器和工作节点。
向 Swarm 添加工作节点
初始化 Swarm 后,您可以将更多机器添加为工作节点,从而提升集群运行容器的能力。
运行 docker swarm init 时,命令会输出类似 docker swarm join --token 的命令。您可以在其他机器上运行此命令,将它们作为工作节点加入。
令牌对于身份验证和安全性至关重要。
演示:工作节点加入命令
这是一个示例命令,您可以在另一台机器(计划作为工作节点的机器)上运行该命令以加入 Swarm。请记得将 SWMTKN-... 替换为实际令牌,并将 MANAGER_IP 替换为管理器的 IP 地址。
注意:由于此命令需要多机器环境,因此无法直接在当前环境中运行。本示例仅用于演示。
docker swarm join \
--token SWMTKN-1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
192.168.1.100:2377检查 Swarm 集群状态
添加节点后,最好验证它们是否已成功加入 Swarm。
您可以在任意管理器节点上使用 docker node ls 命令,查看 Swarm 中的所有节点及其状态、可用性和角色。
节点的 STATUS 应为 Ready,AVAILABILITY 应为 Active,这样节点才能完全正常运行。
快速检查:Swarm 初始化
您决定设置一个新的 Docker Swarm。要在第一台主机上将其设为初始管理器节点,应该使用哪个命令?
回顾:设置 Swarm
做得很好!您已经掌握了设置 Docker Swarm 集群的基本知识:
docker swarm init:用于创建新的 Swarm,并将当前机器指定为第一个管理器。docker swarm join:用于将其他机器作为工作节点或管理器节点添加到现有 Swarm。docker node ls:用于检查 Swarm 集群中所有节点的状态和角色。
借助这些命令,您可以为编排容器化应用构建可靠的基础!
常见问题解答
「设置 Swarm 集群」课时是免费的吗?
是的 — 「设置 Swarm 集群」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Docker & DevOps Fundamentals 课程的其余内容,请升级到 CoddyKit PRO。 Docker & DevOps Fundamentals 课程共包含 4 节课。
「设置 Swarm 集群」这节课中我会学到什么?
初始化 Docker Swarm,添加管理节点和工作节点,并检查集群状态 你通过在浏览器中直接运行的动手代码来练习 Docker & DevOps Fundamentals,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Docker & DevOps Fundamentals 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Docker & DevOps Fundamentals 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「设置 Swarm 集群」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Docker & DevOps Fundamentals 课中编写并运行代码吗?
能。每节 Docker & DevOps Fundamentals 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- Docker Swarm 简介
- 设置 Swarm 集群
- 向 Swarm 部署服务
- Swarm 中的扩缩容与滚动更新