问题现象
在执行如下命令拉取镜像时:
docker pull nginx
Docker 会尝试从默认仓库 https://registry-1.docker.io/v2/ 拉取,但出现了下面这个报错:
Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection
这个错误大概率是因为网络问题,连接 Docker 官方仓库超时。国内访问 Docker Hub 一直不算稳定,加速器成了刚需。
常规解决方案:配置国内镜像源
大部分教程都建议配置 /etc/docker/daemon.json 文件(没有就新建一个),内容如下:
{ "registry-mirrors": [ "https://docker.1panel.live", "https://dc.j8.work", "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn" ] }
配置完之后重启 Docker:
systemctl daemon-reexec
systemctl restart docker
理论上应该可以了……结果还是超时!
深入排查:隐藏配置项
在我反复尝试多种镜像源无果之后,我开始怀疑:
是不是仅仅配置
registry-mirrors不够?
答案是:是的!
我最终使用了下面这份更全面的配置,才真正解决问题:
{ "registry-mirrors": [ "https://docker.registry.cyou", "https://docker-cf.registry.cyou", "https://dockercf.jsdelivr.fyi"


