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

Docker Windows管理节点创建的Overlay网络Linux工作节点无法加入问题

问题原因与解决方案

核心问题1:docker-compose配置缺少外部网络声明

你当前的compose文件networks段没有添加external: true属性,docker-compose默认会尝试在当前节点本地创建同名网络,而非复用Swarm集群中已有的全局Overlay网络。Windows节点可以正常复用是Windows端Docker的特殊适配逻辑,Linux端Docker会严格按照默认逻辑创建本地bridge网络,导致跨节点隔离。

核心问题2:(若配置非笔误)网络名不匹配

你手动在Swarm集群创建的Overlay网络名为Y_OVERLAY,但你贴出的compose配置中name字段写的是Y_OVERLAY0,名称不匹配也会导致compose找不到集群网络,直接创建本地网络。

额外校验项(Swarm跨OS必配)

Oracle Linux 8默认开启firewalld,需放开Swarm Overlay网络所需端口,否则就算网络配置正确也无法跨节点通信:

  • TCP 2377:Swarm集群管理通信
  • TCP/UDP 7946:Swarm节点发现通信
  • UDP 4789:Overlay网络数据流量

修复步骤
  1. 先删除Linux节点上错误创建的本地bridge网络:
docker network rm Y_OVERLAY
  1. 修改docker-compose的networks段为以下配置,明确指定复用已有的Swarm Overlay网络:
networks: 
  YADAMU-NET:
     name: Y_OVERLAY # 和集群中实际创建的Overlay网络名保持一致
     driver: overlay
     external: true # *关键配置*:声明网络为已存在的外部网络,compose不自行创建
     attachable : true
  1. 重新执行docker-compose up -d启动容器即可。

内容的提问来源于stack exchange,提问作者mark d drake

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:06:01