我的机器上运行着2个服务和1个Java应用程序,我们称它们为A,B,C:
A:是在端口39000上运行的服务,并且在docker容器内运行。
B:是在本地主机上的端口49000上运行的服务。
C:是在本地主机上运行的应用程序。
应用程序C与服务A和服务B进行通信。它还在启动之前与这两个服务建立了握手。
问题:C能够与A建立握手,但不能与B建立握手。
异常:localhost:49000的java.net.ConnectException
更多信息:
1)我的机器向服务B发出的卷曲请求已正确提供。
2)在docker升级后,我开始看到此问题。我当前的Docker版本是:Docker版本18.09.0,构建4d60db4
3)lsof | grep 39000:
com.docke 3503 cghai 20u IPv4 0x776c731898d7eabd 0t0 TCP *:39000(LISTEN)
com.docke 3503 cghai 21u IPv6 0x776c731893ca834d 0t0 TCP localhost:39000(LISTEN)
4)lsof | grep 49000:
java 3260 cghai 7u IPv6 0x776c731893cb634d 0t0 TCP *:49000(LISTEN)