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服务器(因为alpine
不curl
)
但是,当我运行像这样的图像
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量最初发送的位置,它会接受这一切。