在使用portainer(docker swarm)方式部署thingsboard集群服务时发现tb-node节点无法访问外部的postgresql服务,通过docker logs containerId查看日志,找到了有效的日志:NO ROUTE TO HOST,通过docker exec -it containerId进入docker内部,执行ping postgresql服务Ip确实ping不通,但是却可以ping通其他ip。
也查了很多资料,很多说是postgresql配置问题,没有允许外部连接访问,但笔者排除了这个问题,因为postgresql服务在其他电脑都可以访问,所以排除这个问题,最终发现导致这个问题的原因在于这个portainer stack部署使用的网络有问题,与宿主机所在网段相同,导致docker服务ip与通网段内其他电脑ip冲突导致,portainer 网络可以在下面页面看到: