【问题标题】:Docker image not exposingDocker 镜像不暴露
【发布时间】:2016-05-30 10:17:17
【问题描述】:

我有一个 docker 镜像,它在我完成的文件中完美运行

EXPOSE 8080

我使用

运行我的图像
sudo docker run -p 8080 <image-name> <Argument1> <Argument2>

图像运行,但当我去

localhost:8080

我收到页面未找到错误。有没有办法在 localhost:8080 上看到一些响应或什么?

【问题讨论】:

  • 尝试:sudo docker run --publish 8080:8080
  • 感谢工作的人。你能告诉-p 8080有什么问题吗?。我还有一个问题,如果我尝试一些像 4567 这样的随机端口,它会代替 8080 工作吗?
  • 第一个问题的答案在@Auzias 答案中。当然,您可以使用另一个端口号而不是 8080。只需注意两件事: 1- 确保选择的端口号在此区间内 [1025, 65536]。从 0 到 1024 的端口保留给预授权服务。 2-确保所选端口未被主机中的其他服务使用。
  • 谢谢。现在它的工作:)
  • 我想在@MohamedAmjadLASRI 的评论中添加更多内容。端口“0”不是端口号。如果服务请求侦听端口“0”,则操作系统会将其处理为“给我可以使用的任何空闲端口数”。至于 services 而是只有特权 users (通常是 root )可以访问。跨度>

标签: docker localhost


【解决方案1】:

-p 8080 选项会将 container:8080 端口暴露给主机:random-port。

--publish 选项的作用如下:-p ip:hostPort:containerPort。使用-P| --publish-all 会自动将任何容器打开的端口绑定到随机主机端口。

也可以发布端口范围:-p 1234-1236:1222-1224

【讨论】: