无法通过curl或浏览器访问Docker Nginx容器问题求助
问题原因分析
1. 端口映射配置错误
官方Nginx镜像默认在容器内部监听80端口,但你创建容器时使用了错误的端口映射规则:
docker run -it -d --name test-nginx -p 8090:8091 nginx
-p 8090:8091的含义是将主机的8090端口转发到容器的8091端口,但容器内的Nginx根本没有在8091端口启动服务,导致转发的流量无人响应。
2. curl localhost:8090报错的原因
当你访问主机8090端口时,Docker会把请求转发到容器的8091端口,但该端口没有任何进程监听,TCP连接建立后容器端会直接重置连接,因此curl返回Recv failure: Connection reset by peer错误。
3. 其他访问失败的原因
curl localhost/curl 10.57.8.115:主机80端口既没有映射到容器,也没有本地HTTP服务运行,所以连接被拒绝。curl localhost:8091/curl 10.57.8.115:8091:主机的8091端口未做端口映射,也没有服务监听,自然无法建立连接。
解决方法
先停止并删除错误配置的容器,再创建使用正确端口映射的容器:
# 停止并删除现有容器 docker stop test-nginx && docker rm test-nginx # 创建正确映射的容器(主机8090端口映射到容器默认的80端口) docker run -it -d --name test-nginx -p 8090:80 nginx
之后访问localhost:8090或10.57.8.115:8090即可正常打开Nginx默认页面。
内容的提问来源于stack exchange,提问作者Nitin Kumar
相关产品推荐
相关产品推荐

