docker pull失败,国内镜像源设置

问题及分析

很多初学docker的小伙伴在安装好docker desktop之后,尝试使用docker pull hello-world拉取镜像时,会报错。

docker pull hello-world
Use tag latest
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)

这种情况主要原因是国内暂时无法访问 https://registry-1.docker.io,需要更换为国内的镜像源。主要有以下两种方式。

1.直接指定镜像源

在拉取时直接指定镜像源的地址,方式如下:

docker pull docker.m.daocloud.io/library/hello-world  # docker.m.daocloud.io为可用的国内镜像源

hello-world为需要拉取的镜像名称,这里要注意,不能遗漏library。

2.修改docker-desktop中的settings

上面的做法是临时指定一次镜像源,实际中我们经常需要拉取多次不同的镜像,可以通过修改docker-desktop软件中的settings设置多个可用的镜像源,具体位置如下图:
在这里插入图片描述
增加registry-mirrors属性,文本具体内容如下:

"registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://docker.1panel.live",
    "https://docker.1ms.run",
    "https://docker.xuanyuan.me"
  ]

注意逗号分隔的规则。
另外,一些文章中提取的中科大、腾讯、网易、阿里的镜像源似乎已经不可用,上述4个镜像源目前是可用的,也可以搜索最新可用的镜像源。

修改完上述文件后,点击下面的“Apply & Restart”,要等重启后再去拉取,就可以成功了。如果还是之前的错误,可以考虑重新启动系统。成功的结果如下图所示。
在这里插入图片描述
备注:本文中解决问题主要针对的是windows平台下安装的docker-desktop,对linux可能无效。

### 配置Docker使用国内镜像源 为了加速Docker的`pull`操作,可以配置Docker使用国内镜像源。以下是具体的实现方法: #### 临时配置方式 在执行`docker pull`命令时,可以直接指定国内镜像源作为参数。例如: ```bash docker pull nginx --registry-mirror=https://hub-mirror.c.163.com ``` 这种方式适用于单次拉取需求,无需修改全局配置[^2]。 #### 永久配置方式 如果希望长期使用国内镜像源,则需要修改Docker的全局配置文件。具体步骤如下: ##### Linux环境下的配置 编辑或创建位于`/etc/docker/daemon.json`的配置文件,添加以下内容: ```json { "registry-mirrors": [ "https://hub-mirror.c.163.com", "https://mirror.baidubce.com", "https://ccr.ccs.tencentyun.com" ] } ``` 保存后重启Docker服务以使更改生效: ```bash sudo systemctl restart docker ``` 验证配置是否成功: ```bash docker info | grep Mirror ``` 如果输出结果显示`Registry Mirrors`字段包含上述地址,则表示配置成功[^4]。 ##### Windows环境下配置 对于Windows用户,特别是运行Windows 11系统的设备,可以通过图形界面完成配置。打开Docker Desktop应用,进入Settings -> Docker Engine选项卡,在弹出窗口中输入类似的JSON结构数据[^3]: ```json { "registry-mirrors": ["https://hub-mirror.c.163.com", "https://mirror.baidubce.com"] } ``` 点击Apply & Restart按钮让改动立即生效。 #### 测试镜像源有效性 确认所选镜像源正常工作非常重要。尝试从不同提供商处获取同一基础镜像并观察其表现差异: ```bash docker pull hub-mirror.c.163.com/library/nginx:latest docker pull mirror.baidubce.com/library/nginx:latest docker pull ccr.ccs.tencentyun.com/library/nginx:latest ``` 一旦发现某个特定源特别慢或者失败频繁,考虑将其移除或更换其他替代方案[^5]。 ### 注意事项 尽管多个镜像源能够提升冗余度和稳定性,但也可能带来额外开销甚至冲突风险;因此建议仅保留少数几个稳定可靠的候选者即可满足日常开发运维所需[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值