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可能无效。
1万+

被折叠的 条评论
为什么被折叠?



