Docker 拉取镜像时,经常出现失败超时的情况,比如以下错误:
1 | ERROR: for XXX Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) |
Docker 默认的镜像服务器 Docker Hub 部署在国外,其实我们可以使用国内的镜像地址来加速下载。
增加镜像平台
修改这个文件(没有的话创建一个):/etc/docker/daemon.json
。在命令行中执行:
1
2
3
4
5
6
7
8
9
10
11
12sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://dockerproxy.net/",
"https://docker.m.daocloud.io",
"https://mirror.iscas.ac.cn"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker也可以直接创建
daemon.json
:1
2
3
4
5
6
7{
"registry-mirrors": [
"https://dockerproxy.net/",
"https://docker.m.daocloud.io",
"https://mirror.iscas.ac.cn"
]
}
将此文件上传到 `/etc/docker` 文件夹。
可以添加多个不同的镜像服务器。
> 国内Docker Hub 镜像加速器受到监管要求几乎全军覆没。
>
> > 阿里云镜像 https://ustc-edu-cn.mirror.aliyuncs.com/
> >
> > 调整镜像加速器功能的使用范围:
> >
> > - 仅限阿里云用户在其支持公网访问的阿里云产品上使用该镜像加速能力。
> > - 仅支持通过镜像加速器拉取限定范围内的容器镜像。
>
> > 百度云镜像 https://mirror.baidubce.com
> >
> > 自2024年6月7日起,百度云将终止对dockerhub官方镜像加速的能力。
重新读取配置,重启docker。
systemcl daemon-reload systemctl restart docker
测试效果,输入命令:
docker info
,即可显示刚才做的更改。