我有一个docker swarm设置,其中服务在覆盖网络中注册。服务之间的通信工作正常,但我得到一个"连接被拒绝"从我连接到外部数据库的一个服务。该服务是基于Java的应用程序(spring boot)。
docker exec -it e093 ping 192.168.130.141
给出预期答案我正在运行docker 18.03.0-ce,确切的错误是
java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_151]
我会在这里跳过完整的堆栈跟踪。
非常感谢任何帮助
- 编辑 -
让我澄清一下,数据库是Galera集群,我尝试连接的IP是它前面的负载均衡器(HAProxy)。我知道设置工作正常,因为我有其他应用程序在这个问题上连接到集群以及服务本身(当不在docker容器中时)。
所以,据我所知,我的连接信息是正确的,但它并没有从docker服务内部连接。
答案 0 :(得分:-1)
你能展示你的docker-compose.yml吗?在端口中,您必须公开您需要访问的端口。
ports:
- 3306:3306
您可以使用容器内的命令
安装telnet以测试端口是否打开docker container ls
docker exec -it conainerid bash
apt-get update
apt-get install telnet