【问题标题】:Docker didn't forward the port from web serviceDocker 没有从 Web 服务转发端口
【发布时间】:2016-05-01 07:28:10
【问题描述】:

我正在使用 ASP Core 映像来创建一个新容器。

我开发了使用端口5000 的简单服务。

现在我创建了 Dockerfile 并构建了暴露的容器

EXPOSE 5000

使用命令运行此容器

docker run -it -p 8080:5000 <name>

甚至

docker run -it -p 127.0.0.1:8080:5000 <name>

不会导航到127.0.0.1:8080。所以我的浏览器显示this site can't be reached

附言我已经检查了没有 docker 的服务 - 它工作正常

UPD1

docker ps

显示我启动的容器以及端口映射信息:

127.0.0.1:8080->5000/tcp

UPD2

这是来自主机的netstat 输出

tcp        0      0 localhost:5000          *:*                     LISTEN

lynx 127.0.0.1:5000 显示200 OK

客户端框上的netstat -a 不显示8081 端口或5000

UPD3

我刚刚使用公共映像为 NodeJs 创建了一个新容器。

创建了一个暴露端口的简单服务器。运行后按预期工作。

实际上它看起来像精确的 Asp 图像的问题

【问题讨论】:

  • 你检查过 docker 中的服务了吗?
  • 你能建议怎么做吗?
  • 你可以运行:sudo docker exec -i -t /bin/bash
  • 您如何知道您的服务正在实际运行?你试过docker logs your-instance-name吗?
  • 我看到来自容器的输出转发。而且我看到我的服务在指定端口上启动时没有任何问题。实际上,没有 docker 的相同信息会导致正确执行

标签: docker asp.net-core dockerfile


【解决方案1】:

您使用的是哪个操作系统?如果您在 OSX 或 Windows 上运行,则需要使用 boot2docker 虚拟机的 IP,而不是 127.0.0.1。

docker-machine ip 将显示您当前主机的 IP。

【讨论】:

  • 我在 Windows 上启动。这个IP地址我也试过了。我已经尝试转发到 127.0,0,1
  • docker-machine ls 向您展示了什么?如果有不止一台机器,您可能会在一台机器上启动并尝试访问另一台机器。如果只有一个,docker-machine ip 向您展示了什么?你能ping通那个地址吗?
  • 只有一个盒子是ls。是的,我可以ping通它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-24
  • 1970-01-01
  • 1970-01-01
  • 2020-11-04
  • 1970-01-01
  • 1970-01-01
  • 2017-12-15
相关资源
最近更新 更多