docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled

本文介绍如何解决Docker因默认使用国外源而导致的下载速度慢问题,通过配置国内镜像源加速Docker镜像的拉取,包括修改配置文件、重启服务及验证步骤。

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

验证docker

本地docker环境安装成功后,我们会通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。

sudo docker run hello-world

报错信息

[root@localhost ~]# sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.

解决办法

docker默认的源为国外官方源,下载速度较慢,可改为国内源

编辑或新建配置文件 /etc/docker/daemon.json
daemon.json

{
    "registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com"],
    "live-restore": true
}

重新启动docker服务

systemctl restart docker

在这里插入图片描述
运行 hello-world 映像来验证
在这里插入图片描述

Docker国内源说明:

Docker 官方中国区

https://registry.docker-cn.com

网易

http://hub-mirror.c.163.com

中国科技大学

https://docker.mirrors.ustc.edu.cn

阿里云

https://pee6w651.mirror.aliyuncs.com

### Docker 登录时因网络超时导致的错误解决方案 当执行 `docker login` 命令时,如果遇到类似于“net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)”的错误提示,这通常表明客户端在网络连接过程中发生了超时[^1]。以下是可能的原因以及对应的解决方法: #### 可能原因分析 1. **本地 DNS 配置问题** 如果系统的 DNS 设置不正确或者解析速度过慢,则可能导致 Docker 客户端无法及时完成域名解析操作,从而引发请求被取消的情况。 2. **代理设置冲突** 当存在 HTTP/HTTPS 代理配置但未适配 Docker 的需求时,也可能造成类似的通信中断现象[^2]。 3. **目标服务器负载过高或不可达** 若远程仓库所在的主机由于维护或其他技术因素暂时不可访问,同样会触发此类异常行为。 #### 解决方案详解 ##### 方法一:调整系统中的 DNS 参数 通过更改默认使用的公共 DNS 或者指定更可靠的选项来改善名称查询效率。具体步骤如下所示: 对于 Linux 平台而言, 编辑 `/etc/docker/daemon.json` 文件并加入以下内容: ```json { "dns": ["8.8.8.8", "8.8.4.4"] } ``` 之后重启服务使改动生效即可。 此方式能够有效规避部分由不良质量的服务商引起的延迟状况。 ##### 方法二:优化时间参数设定 虽然官方文档并未明确提及针对单一命令增加等待时限的具体做法,不过可以通过全局环境变量的形式间接实现延长整体流程的目的。例如,在 shell 中预先定义 DOCKER_CLIENT_TIMEOUT 和 COMPOSE_HTTP_TIMEOUT 这样的键值对之前再调用关联功能模块可能会有所帮助。 另外值得注意的是,某些特殊场景下适当减少 MTU 数值也有助于缓解上述难题的发生几率。 ##### 方法三:验证镜像源地址可用性 确认当前所依赖的基础架构层面上不存在任何物理链路层面障碍物阻挡正常数据交换过程顺利开展下去至关重要。可以尝试切换至备用站点继续测试直至找到稳定版本为止。 最后提醒各位开发者朋友务必保持软件处于最新状态以便享受持续改进带来的便利之处! ```bash sudo systemctl restart docker export DOCKER_CLIENT_TIMEOUT=120 export COMPOSE_HTTP_TIMEOUT=120 docker login ``` 以上脚本片段展示了如何重新启动守护进程以及扩展相应的响应周期长度单位设为秒级表示形式。
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

無间行者

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

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

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

打赏作者

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

抵扣说明:

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

余额充值