Golang Webserver无法从Docker访问

我在Go中使用Gorilla框架来公开一个web服务。 我在/hello有一个“Hello World”端点,当从Postman,浏览器或curl命中时,它工作正常。

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

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

现在我可以ssh入容器,并使用wget ping服务器(因为alpinecurl

但是,当我运行像这样的图像

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

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

任何帮助将不胜感激。

我解决了它通过暴露服务器在0.0.0.0而不是localhost

问题是,我已经告诉我的networking服务器只提供发送到本地主机的请求。 由于Docker所做的networking重叠,没有任何显示给您的networking服务器的stream量将其视为发送到localhost 。 通过告诉networking服务器听取0.0.0.0 ,我有效地告诉它,它不关心stream量最初发送的位置,它会接受这一切。