核心是启用Swarm模式并初始化Manager节点;执行docker swarm init --advertise-addr <MANAGER_IP>:2377,生成Worker/Manager加入令牌,再通过docker node ls验证多节点集群状态。
安装 docker engine 后,配置集群管理节点的核心动作不是“额外安装”,而是启用 swarm 模式并初始化 manager 节点。docker engine 自 1.12 起已原生集成 swarm 功能,无需单独部署组件。
确保基础环境就绪
所有节点(包括未来要当 Manager 的机器)需满足:
- 已安装 Docker Engine 20.10 或更高版本(推荐 24.x+)
- 各节点间 TCP 2377(管理通信)、TCP/UDP 7946(节点发现)、UDP 4789(Overlay 网络)端口互通
- 使用固定 IP 地址(不建议用 DHCP 分配的动态地址),尤其 Manager 节点必须绑定稳定 IP
- 关闭或配置防火墙放行上述端口(如 ufw、firewalld)
在首台机器上初始化 Manager 节点
在选定的第一台管理主机上执行:
docker swarm init --advertise-addr <MANAGER_IP>:2377
例如:
docker swarm init --advertise-addr 192.168.200.113:2377
命令成功后会输出两段关键信息:
- 一段用于加入 Worker 节点的
docker swarm join --token ...命令 - 一段提示运行
docker swarm join-token manager获取管理节点加入令牌
此时该节点已是 active Manager,且 docker info 中 “Swarm” 显示为 active,“Is Manager” 为 true。
添加更多 Manager 节点(实现高可用)
为避免单点故障,应部署至少 3 个 Manager 节点(奇数更优)。在其他目标机器上操作:
- 先在首节点获取 Manager token:
docker swarm join-token manager - 复制输出的完整 join 命令(含 token 和 IP)
- 在新机器上执行该命令(确保
--advertise-addr在 init 时已设好,或新节点也使用固定 IP)
加入后,可通过 docker node ls 查看所有节点,并确认其 “MANAGER STATUS” 列有 Leader、Reachable 或 Unreachable 状态。
验证与关键配置提醒
运行以下命令确认集群状态:
docker node ls
正常输出中应包含多个节点,且至少一个带 * Leader 标记。还需注意:
- 法定人数(Quorum)必须维持:3 个 Manager 最多容忍 1 个宕机;5 个最多容忍 2 个。失去多数则无法变更集群状态(如增删节点、更新服务)
-
不要混用动态 IP:若 Manager 重启后 IP 变化,集群将失联。建议在
/etc/docker/daemon.json中配置"fixed-cidr"或使用 host 网络绑定静态地址 -
生产环境分离角色:Manager 节点默认可运行任务,但建议设为
drain状态(docker node update --availability drain <node-id>)以专注调度


















