我在虚拟机中有docker主机。
主机是boot2docker 1.10-rc1。
和一个centOS 7.2镜像中的容器。

我试图在容器中运行一些应用程序。
我启动了两个应用程序,并检查了网络状态:

[root@564f3e59142b logs]# netstat -lnput
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:41656           0.0.0.0:*               LISTEN      11995/BmtMDProvider
tcp6       0      0 :::44027                :::*                    LISTEN      4405/java

这两个应用程序都提供一些HTTP服务。

当我 curl 两个应用程序时(在同一个容器中):

java的响应还可以
[root@564f3e59142b logs]# curl 127.0.0.1:44027
curl: (52) Empty reply from server

但是在BmtMDProvider上,我立即得到“对等连接重置”。这是一个HTTP服务网址,不应返回“连接重置”。
[root@564f3e59142b logs]# curl 127.0.0.1:41656
curl: (56) Recv failure: Connection reset by peer

BmtMDProvider是来自第三方的某些应用程序(我无法对其进行修改),并且可以在“真实”计算机上正常工作。

我可以提出一些建议,指南或诊断步骤来找出“连接重置”的来源吗?谢谢。

编辑:
BmtMDProvider是java产生的进程,它具有随机端口。可能是BmtMDProvider的多个实例。 Java通过http访问BmtMDProvider(它们位于同一个docker容器中,并且Java收到“连接重置”,与curl相同)

最佳答案

尝试使用IPV4端口运行容器,这意味着如果您当前正在使用
$ docker run -p 41656:41656 BmtMDProvider
运行为
$ docker run -p 127.0.0.1:41656:41656 BmtMDProvider

关于networking - Docker-curl返回 “connection reset”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35149455/

10-13 01:12