Curl Golang Web服务器可以';不能从Docker访问
我正在使用Go中的Gorilla框架来公开Web服务。我在Curl Golang Web服务器可以';不能从Docker访问,curl,docker,go,gorilla,Curl,Docker,Go,Gorilla,我正在使用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到容器中,并使用wgetpi
/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
我无法从主机系统以任何方式访问服务器
任何帮助都将不胜感激。我将服务器暴露在
0.0.0
而不是localhost
问题是我告诉我的Web服务器只服务发送到本地主机的请求。由于Docker造成的网络混乱,显示到Web服务器的流量中没有一个看起来像是发送到
localhost
的Web服务器。通过告诉Web服务器监听0.0.0.0
,我实际上是在告诉它,它不在乎流量最初发送到哪里,它会接受所有流量。我通过将服务器暴露在0.0.0
而不是localhost
问题是我告诉我的Web服务器只服务发送到本地主机的请求。由于Docker造成的网络混乱,显示到Web服务器的流量中没有一个看起来像是发送到
localhost
的Web服务器。通过告诉Web服务器侦听0.0.0.0
,我实际上是在告诉它,它不在乎流量最初发送到哪里,它会接受所有流量。alpine没有安装和配置SSH服务器,您应该使用docker exec
查看文档。如果没有安装和配置SSH服务器,您应该使用docker exec
查看文档