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

本文介绍了解决Docker镜像下载速度慢的方法,通过更改Docker的默认镜像源为国内源来加速下载过程。提供了两种修改方案,包括编辑daemon.json文件和sysconfig/docker配置文件。

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

sudo docker run hello-world

docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.

修改docker镜像源:

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

方案一

修改或新增 /etc/docker/daemon.json

# vi /etc/docker/daemon.json

{

"registry-mirrors": ["http://hub-mirror.c.163.com"]

}

systemctl restart docker.service

方案二

修改或新增 /etc/sysconfig/docker,在OPTIONS变量后追加参数  --registry-mirror=https://docker.mirrors.ustc.edu.cn

# vi /etc/sysconfig/docker

OPTIONS='--selinux-enabled --log-driver=journald --registry-mirror=https://docker.mirrors.ustc.edu.cn'

Docker国内源说明:

Docker 官方中国区

https://registry.docker-cn.com

网易

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

中国科技大学

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

阿里云

https://pee6w651.mirror.aliyuncs.com

最终我用下面的方案解决了:

进入/etc/docker

查看有没有 daemon.json。这是docker默认的配置文件。

如果没有新建,如果有,则修改。


[root@zengmg docker]# vi daemon.json
{
  "registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com"]
}

保存退出。


重启docker服务

service docker restart

成功!
 

 

### 问题分析 Docker连接`registry-1.docker.io`时出现超时错误,通常是由于网络连接不稳定或国外镜像源访问受限导致的。为了解决这一问题,可以通过更换国内镜像源来优化Docker的拉取速度和稳定性。 ### 解决方案 #### 更换Docker镜像源 在`daemon.json`文件中配置国内镜像源可以有效解决超时问题。以下是具体操作步骤: 1. **编辑`daemon.json`文件** 使用以下命令打开`daemon.json`文件进行编辑: ```bash sudo vim /etc/docker/daemon.json ``` 如果文件不存在,则需要创建一个。 2. **添加镜像源配置** 在文件中添加如下内容: ```json { "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://mirror.ccs.tencentyun.com", "https://hub-mirror.c.163.com" ] } ``` 上述镜像源为中国科学技术大学、腾讯云和网易提供的国内镜像加速服务[^4]。 3. **保存并退出编辑器** 按下`Esc`键后输入`:wq`保存并退出。 4. **刷新Docker守护进程配置** 执行以下命令以刷新配置: ```bash sudo systemctl daemon-reload ``` 5. **重启Docker服务** 使用以下命令重启Docker服务以应用更改: ```bash sudo systemctl restart docker ``` 完成上述操作后,再次尝试拉取镜像,问题应得到解决。 #### 验证配置是否生效 可以使用以下命令测试是否能够正常拉取镜像: ```bash docker pull hello-world ``` 如果成功拉取镜像,则说明问题已解决。 ### 注意事项 - 确保系统具备稳定的网络连接。 - 如果问题仍然存在,可能需要检查本地防火墙设置或代理配置是否影响了Docker的网络访问[^3]。 ### 示例代码 以下是一个完整的脚本示例,用于自动化配置镜像源并验证: ```bash #!/bin/bash # 创建或编辑daemon.json文件 sudo bash -c 'cat > /etc/docker/daemon.json <<EOF { "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://mirror.ccs.tencentyun.com", "https://hub-mirror.c.163.com" ] } EOF' # 刷新Docker守护进程配置 sudo systemctl daemon-reload # 重启Docker服务 sudo systemctl restart docker # 测试镜像拉取 docker pull hello-world ```
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值