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

Docker Swarm同Overlay网络服务无法通信问题求助

解决Docker Swarm Overlay网络内服务无法通信的思路

看起来你遇到了Swarm集群中Overlay网络服务DNS解析失败的问题,即使使用VIP也无法通信,下面是我整理的一步步排查方案:

  • 确认Overlay网络的健康状态
    首先检查这个Overlay网络的详细信息,确认所有节点都已正确加入网络:

    docker network inspect hh8zmhc9gx0p9iwukozo31dgs
    

    重点看Containers和Peers部分,确认dev_db和dev_slavedb对应的容器都在网络中,且集群节点的状态都是健康的(没有断开连接的节点)。

  • 验证Swarm DNS解析功能
    Swarm服务的域名解析依赖内置的DNS服务,你可以进入其中一个服务的容器,直接测试DNS解析:

    # 先获取dev_slavedb的容器ID
    docker ps --filter "name=dev_slavedb" --format "{{.ID}}"
    # 进入容器
    docker exec -it <container-id> /bin/bash
    # 测试DNS解析
    nslookup dev_db
    dig dev_db
    

    如果解析失败,说明Swarm的DNS服务出现了异常;如果能解析到VIP但还是无法通信,那问题可能出在网络连通性上。

  • 检查节点间的Overlay网络必备端口
    Overlay网络依赖以下端口的连通性,确保集群节点之间这些端口没有被防火墙/安全组拦截:

    • TCP 2377:Swarm管理节点间通信
    • TCP/UDP 7946:节点间的发现与通信
    • UDP 4789:VXLAN数据包传输

    在swarm01节点上测试和swarm02的连通性:

    # 测试4789端口
    nc -zv swarm02 4789
    # 测试7946端口
    nc -zv swarm02 7946
    

    如果端口不通,先关闭节点上的防火墙(比如ufw disable或者systemctl stop firewalld)测试,确认是防火墙问题后再配置规则放行这些端口。

  • 检查服务任务的实际运行状态
    虽然服务显示存在,但任务可能有异常,检查任务的详细状态:

    docker service ps dev_db
    docker service ps dev_slavedb
    

    看任务的STATE是否是Running,有没有重启循环的情况。如果任务状态异常,查看容器日志确认postgres服务是否正常启动:

    docker logs <container-id>
    

    如果postgres服务没正常启动,即使网络正常也无法通信。

  • 排查Host模式端口发布的影响
    注意到你的两个服务都使用了PublishMode: host,这种模式会将端口直接绑定在节点的主机网络上,虽然两个服务在不同节点不会端口冲突,但可能会绕过Swarm Overlay网络的部分逻辑。可以临时修改其中一个服务的发布模式为ingress测试:

    docker service update --publish-rm 5432:5432/tcp --publish-add 5432:5432/tcp --publish-mode ingress dev_db
    

    修改后再测试服务间的通信,看是否恢复正常。

  • 确认集群节点Docker版本一致性
    不同版本的Docker可能存在Overlay网络的兼容性问题,在所有节点上执行:

    docker version
    

    确保所有节点的Docker版本(尤其是Swarm相关的版本)完全一致,如果有版本差异,升级到同一稳定版本再测试。

  • 重启Docker服务或Swarm节点(谨慎操作)
    如果以上步骤都没解决问题,可以尝试重启单个节点的Docker服务(先确保服务有副本或者业务允许中断):

    systemctl restart docker
    

    如果是管理节点,重启后需要确认Swarm集群状态正常:

    docker node ls
    

内容的提问来源于stack exchange,提问作者VaTo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:30:49