现状
家里的一台 linux 主机,安装 Docker 后遇到无法拉取镜像的问题,报错如下:
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'.
解决思路
国内网络环境如此,更换镜像源,是网上最普遍最常用的方法。
但目前网上常见的这些镜像源(阿里云、清华、中科大)基本都已 error 状态,我们这里使用华为云提供的镜像加速。
点击右上角 镜像加速器
黑色按钮,即可获取加速器地址。
接下来编辑 daemon.json
文件,一般在 /etc/docker/
目录下。若没有就新建一个:
sudo mkdir -p /etc/docker
sudo touch /etc/docker/daemon.json
编辑 daemon.json
文件
sudo vi /etc/docker/daemon.json
插入以下代码:
{
"registry-mirrors": [ "https://<填写你自己的>.mirror.swr.myhuaweicloud.com" ]
}
重启 Docker:
systemctl restart docker
输入 docker info
查看是否已生效:
root@linux:/# docker info
Client:
Version: 24.0.7
Context: default
Debug Mode: false
Server:
...
(略)
...
Registry Mirrors:
https://***.mirror.swr.myhuaweicloud.com/ #出现你刚刚填写的加速器地址即表示生效
Live Restore Enabled: false
至此配置完毕,实测确认问题已解决。
其它解决思路
用 Clash for Windows 开启 TUN 模式,为 Docker 提供网络代理。
参考:彻底解决docker:docker: Get https://registry-1.docker.io/v2/: net/http: request canceled 报错-CSDN博客
sudo mkdir -p /etc/docker
sudo touch /etc/docker/daemon.json
{
"proxies": {
"default": {
"httpProxy": "http://XXX:7890",
"httpsProxy": "http://XXX:7890",
"noProxy": "localhost,127.0.0.1,docker-registry.someexample.com"
}
}
}
全文完
© 全站文章均为原创,以 CC BY-NC-SA 4.0 公共许可协议进行许可,转载请保留署名和出处。了解更多
暂无更多评论