You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Swarm无法创建Overlay Network及集群状态异常的重置方案求助

Docker Swarm无法创建Overlay Network及集群状态异常的重置方案求助

看起来你这是在反复调整Swarm节点角色的过程中,导致集群内部元数据出现了不一致的情况——虽然docker info和docker node ls都显示10.0.0.3是Leader Manager,但实际Swarm的Raft状态已经损坏,所以执行需要Manager权限的操作(比如创建overlay网络)时会报错。

最彻底的解决方法是完全重置所有节点的Swarm状态,从头开始搭建集群,步骤如下:

1. 强制退出所有节点的Swarm集群

不管节点当前是Manager还是Worker,都执行强制退出命令:

  • 在10.0.0.3(原Leader)上:
    docker swarm leave --force
    
  • 在10.0.0.10上:
    docker swarm leave --force
    

2. 清理Swarm残留的状态文件(关键步骤)

仅执行swarm leave有时候无法彻底清除集群的元数据,需要手动删除Swarm的存储目录:

  1. 先停止Docker服务:
    sudo systemctl stop docker
    
  2. 删除Swarm的状态目录:
    sudo rm -rf /var/lib/docker/swarm
    
  3. 重启Docker服务:
    sudo systemctl start docker
    

3. 重新初始化Swarm集群

回到10.0.0.3节点,重新初始化Swarm:

docker swarm init --advertise-addr 10.0.0.3

执行后会输出Worker和Manager的加入命令,把对应的token保存好。

4. 重新加入其他节点

根据你的需求,在10.0.0.10上执行对应的加入命令:

  • 如果要作为Worker:使用输出的docker swarm join --token <worker-token> 10.0.0.3:2377
  • 如果要作为Manager:使用输出的docker swarm join --token <manager-token> 10.0.0.3:2377

完成这些步骤后,你可以再次执行docker node ls和docker network create -d overlay db验证,应该就能正常创建overlay网络了。

额外说明

这种重置操作会清除所有Swarm相关的配置(包括已创建的网络、服务、节点信息),所以如果之前有重要的Swarm服务配置,记得提前备份。而你提到的非Swarm运行的容器不会受到影响,它们是独立于Swarm集群的。

备注:内容来源于stack exchange,提问作者Postie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 15:34:30