Docker:无法打开端口8080

时间:2016-04-08 10:10:53

标签: curl docker port containers

我在容器中有一个REST API,绑定到/ rest / getMail,它返回一个JSON字符串。

我可以使用curl localhost:8080/rest/getMail在没有问题的情况下在容器内调用此API。

但是,我无法从外部调用此API,即使我已经EXPOSE端口并执行了外部内部端口绑定:docker run -d -i -p 2500:8080 myimagedocker run -d -i --expose 8080 -p 2500:8080 myimage。它显示:连接被拒绝。

我甚至无法使用IP地址调用api,例如:curl 172.17.0.2:8080/rest/getMail

可能是什么问题?这真的很奇怪。 谢谢。

编辑:

当我curl localhost:2500时,它会显示:

curl: (56) Recv failure: Connection reset by peer

telnet localhost:2500

Trying ::1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.

curl localhost:2500/rest/getMail给了我相同的结果。

1 个答案:

答案 0 :(得分:1)

看起来您应该点击host_ip:host_port网址。你在主机上运行第二个curl命令吗?如果是这样,端口应该是映射端口(在您的示例中为2500)。

您可以尝试在主机上运行此功能:

curl localhost:2500/rest/getMail

要检查的另一件事是主机上是否有阻止此连接的防火墙。