docker (56) Recv failure: Connection reset by peer

文章讲述了作者在使用Docker运行SpringBootAPI项目时遇到连接问题,通过一系列排查包括防火墙设置、转发规则和docker0网桥重置,最终发现问题是由于yml配置文件中address被设置为127.0.0.1,修改后解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker 运行一个spring boot的api接口项目,在虚拟机上测试:

curl 127.0.0.1:9997/doc.html
 

报错:(56) Recv failure: Connection reset by peer

在网上搜了很多包括:

检查防火墙是否关闭

systemctl status firewalld 检查防火墙状态
systemctl disable firewalld 永久关闭防火墙

检查转发规则是否为 1

输入命令:sysctl net.ipv4.ip_forward
如果返回为“net.ipv4.ip_forward = 1”则表示没问题

重建docker0网桥
(1)停止所有容器,停止docker服务

systemctl stop docker.socket 停止docker服务
docker stop $(docker ps -q) 停止所有容器

(2)重建docker0网桥 (每一步都别少)

[root@master docker]# yum install bridge-utils -y

[root@master docker]# ip link set dev docker0 down

### Docker 连接重置错误解决方案 当遇到 `curl: (56) Recv failure: Connection reset by peer` 错误时,通常意味着客户端尝试建立连接并发送请求后,服务器端突然关闭了连接。这可能是由于多种原因引起的。 #### 1. 检查容器内的服务状态和服务配置 确保容器内运行的服务已正确启动并且正在监听预期的端口。可以通过执行命令来验证这一点: ```bash docker exec -it <container_name> /bin/sh netstat -ntlp ``` 上述命令会显示所有处于监听状态的网络连接及其对应的进程 ID 和程序名称[^5]。 #### 2. 验证防火墙设置 确认宿主机上的防火墙规则不会阻止来自外部 IP 地址的数据包到达目标端口。对于 Linux 系统来说,可以使用如下命令临时禁用防火墙来进行测试: ```bash sudo systemctl stop firewalld ``` 如果问题得到解决,则说明是防火墙配置不当所致;此时应调整相应策略而非完全停用防护措施。 #### 3. 调整 SELinux 或 AppArmor 设置 某些安全模块可能会干扰到应用程序之间的通信。特别是SELinux,在默认情况下它会对文件访问权限施加严格限制。可通过修改 `/etc/selinux/config` 文件中的参数或将环境变量 `SECURITYPOLICY=permissive` 添加至启动脚本来放宽这些约束条件。 #### 4. 更改镜像源加速下载速度 如果是因拉取官方仓库中较大尺寸的基础映像而引发超时现象的话,那么切换成国内阿里云提供的镜像站能够有效改善这一状况: ```bash yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo ``` 此操作有助于提高构建效率以及减少中途失败的概率[^4]。 #### 5. 排除网络因素影响 考虑到可能存在路由循环、DNS解析异常等问题,建议先通过 ping 命令检测连通性,并利用 nslookup 工具查询域名对应的真实IP地址。另外还需留意是否存在代理服务器介入的情况——它们有时也会成为阻碍正常通讯的因素之一。 综上所述,针对不同场景采取相应的排查手段往往能更快定位根本原因所在。希望以上方法可以帮助解决问题!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YuanlongWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值