无法从Docker访问Golang Webserver

时间:2017-07-09 11:58:19

标签: curl docker go gorilla

我在Go中使用Gorilla框架来公开Web服务。我有一个" Hello World" /hello的端点,当从邮递员,浏览器或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

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我通过在0.0.0.0而不是localhost

展示服务器来解决这个问题

问题是我告诉我的网络服务器只提供发送到localhost的请求。由于Docker所做的网络损坏,显示在您的网络服务器上的流量都没有看到网络服务器,就好像它们被发送到localhost一样。通过告诉网络服务器监听0.0.0.0,我实际上告诉它它并不关心最初发送流量的位置,它会全部接受。