0Pricing
Docker & DevOps Fundamentals · 课时

设置 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 集群 — 插图 1

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 :2377 的命令。您可以在其他机器上运行此命令,将它们作为工作节点加入。

令牌对于身份验证和安全性至关重要。

演示:工作节点加入命令

这是一个示例命令,您可以在另一台机器(计划作为工作节点的机器)上运行该命令以加入 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. Docker Swarm 简介
  2. 设置 Swarm 集群
  3. 向 Swarm 部署服务
  4. Swarm 中的扩缩容与滚动更新
← 返回 Docker & DevOps Fundamentals