我在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
我无法以任何方式从我的主机系统访问服务器。
非常感谢任何帮助。
答案 0 :(得分:1)
我通过在0.0.0.0
而不是localhost
问题是我告诉我的网络服务器只提供发送到localhost的请求。由于Docker所做的网络损坏,显示在您的网络服务器上的流量都没有看到网络服务器,就好像它们被发送到localhost
一样。通过告诉网络服务器监听0.0.0.0
,我实际上告诉它它并不关心最初发送流量的位置,它会全部接受。