connection reset by peer 原因是没有启动nginx,需要进入容器启动nginx,也就是进入之后,输入nginx就好。
有connection refuse问题,应该是ping不通的,可能的原因是因为docker的网关 docker0 没有ipv4地址,添加就好,下面有说明。
-
首先需要在自己的宿主机上ping自己的nginx容器,看是否能ping通。
ping nginx容器ipdizhi
# nginx容器IP地址获取方法
docker inspect 容器名/容器id
#如果ping不同
#可以通过docker网关,名字docker0,使用下面任意命令
ifconfig
ip addr show
#查看docker0的ipv4地址,下面是我的docker0网关的内容,ipv4地址是inet,后面的内容
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet xxx.xxx.xxx.xxx netmask 255.255.0.0 broadcast xxx.xxx.xxx.xxx
.....
#如果你的docker0没有ipv4地址,可以填加。
#停止docker0网关
ip link set dev docker0 down
#向网关赋予ipv4地址
ip addr add 172.17.0.1/24 dev docker0
#启用网关
ip link set dev docker0 up
#一般有如果curl localhost:xxx 出现connection refuse 就是docker0网关没有ipv4地址
#ping不同可能因为你的容器端口写错了,但这个可能性不大,使用下面命令来查看容器端口
docker ps
- 然后解决方法
#进入容器,命令我就不写了 #进入nginx容器之后,输入nginx,用来启动nginx nginx #输入之后应该是会有反应的,然后按ctrl +p+q ,退出容器,然后curl就可以了。 #上面这一步我不怎么确定,但也差不多。