curl - Docker:无法打开端口 8080

标签 curl docker port containers

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

我可以在容器内调用这个 API,使用 curl localhost:8080/rest/getMail没有问题。

但是,我无法从外部调用此 API,即使我已经公开了端口并执行了外部到内部端口绑定(bind):docker run -d -i -p 2500:8080 myimage , 或 docker 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给了我同样的结果。

最佳答案

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

您可以尝试在主机上运行它吗:
curl localhost:2500/rest/getMail
要检查的另一件事是主机上是否有阻止此连接的防火墙。

关于curl - Docker:无法打开端口 8080,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36496958/

相关文章:

azure - 将 Keycloak Docker 镜像部署到 Azure 应用服务 - 无法创建管理员用户

java - 更改 Axis Web 服务监听的端口

Python CURL 删除请求函数

linux - 如何使用来自网页的数据通过curl和grep(或任何busybox替代方案)提交POST请求

docker - 当 docker 主机重启时会发生什么?

docker - Sklearn 并行处理在 docker 容器中不起作用

python - 使用端口安装numpy(Python默认版本问题)

port - 你为什么说 "TCP port"?

linux - curl :(2)初始化失败

r - quantmod-SSL : unable to get local issuer certificate in R