【问题标题】:Golang Webserver can't be accessed from DockerGolang Webserver 无法从 Docker 访问
【发布时间】:2017-07-09 20:09:27
【问题描述】:

我在 Go 中使用 Gorilla 框架来公开 Web 服务。我在/hello 有一个“Hello World”端点,当被邮递员、浏览器或curl 击中时工作正常。

当我将它与 Docker 捆绑在一起时,问题就出现了。我的 Dockerfile 如下

FROM alpine
COPY ./target/himer-users-go /app
ENV PORT 9000
RUN echo $PORT
ENTRYPOINT /app
EXPOSE ${PORT}

现在我可以ssh 进入容器并使用wget ping 服务器(因为alpine 没有与curl 捆绑在一起)

但是当我像这样运行图像时

docker run -d -p 9000:9000 namespace/image

我无法从我的主机系统以任何方式访问服务器。

任何帮助将不胜感激。

【问题讨论】:

标签: curl docker go gorilla


【解决方案1】:

我通过将服务器暴露在0.0.0.0 而不是localhost 解决了这个问题

问题是我告诉我的网络服务器只处理发送到本地主机的请求。由于 Docker 所做的网络重整,出现在您的网络服务器上的任何流量都不会在网络服务器上看起来好像它们被发送到 localhost。通过告诉网络服务器监听0.0.0.0,我实际上是在告诉它,它不关心流量最初发送到哪里,它会全部接受。

【讨论】:

  • 我已经浪费了2个小时来解决它,在你发帖之前,谢谢
猜你喜欢
  • 2019-11-22
  • 2021-07-05
  • 1970-01-01
  • 2019-11-25
  • 1970-01-01
  • 1970-01-01
  • 2018-06-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多