curl: (56) Recv failure: Connection reset by peer报错
今天玩Docker入门安装Nginx遇到个问题,尝试使用curl localhost:80访问nginx主页,但是出现了上面的问题,所有其他配置都正常,防火墙也关了,尝试各种方法,最后下面这种生效,特此记录一下。
实验环境:openstack云主机CentOS72 1511,docker-ce 20.10.3
在正常安装docker-ce环境后尝试运行nginx测试docker环境是否正常,结果发现docker容器映射到宿主机的端口无法正常访问,报错:
curl: (56) Recv failure: Connection reset by peer
但容器内通过端口访问服务,返回结果正常。
如图
解决方法很简单,重建docker0网桥,但出现错误原因不清楚
重建docker0网桥步骤:
# 停止docker
systemctl stop docker
# 安装bridge-utils
yum install -y bridge-utils
# 关闭docker0网桥
ip link set dev docker0 down
# 删除docker0网桥
brctl delbr docker0
# 添加docker0网桥
brctl addbr docker0
# 添加网桥信息
ip addr add 172.16.10.1/24 dev docker0
# 启动docker0网桥
ip link set dev docker0 up
# 查看网桥是否正常
ip addr
# 启动docker
systemctl restart docker
如果大佬们知道出现这种情况的原因,一起讨论交流吧!
2021/2/24补充:
先前出现宿主机端口无法正常访问的容器,如果重建docker0网卡,重启docker后还是不能正常访问,就删掉之前有问题的容器,重新run一个出来(一般是这样操作)