阿里云 Docker 镜像加速

阿里云 Docker 镜像加速

由于网络原因,国内下载一个 Docker 官方镜像可能会需要很长的时间,甚至下载失败。为此,阿里云容器镜像服务 ACR 提供了 Docker 官方的镜像站点,从而加速 Docker 官方镜像的下载。

前置条件

注册并登录阿里云账号。查看注册账号 - https://help.aliyun.com/document_detail/69335.html了解更多信息。

如果已经有一个阿里云账号,也可以创建一个 RAM 用户。查看创建RAM用户 - https://help.aliyun.com/document_detail/93720.html了解更多信息。

开通阿里云容器镜像服务 ACR。以华东2(上海)为例,地址为https://cr.console.aliyun.com/cn-shanghai/instances/

获取镜像加速器地址

阿里云容器镜像服务 ACR 会为每一个账号(阿里云账号或 RAM 用户)生成一个镜像加速器地址,配置镜像加速器前,您需要获取镜像加速器地址。

登录容器镜像服务控制台,,在左侧导航栏选择 镜像工具 > 镜像加速器,在镜像加速器页面获取镜像加速地址。

镜像加速地址格式一般为 https://<随机字符串>.mirror.aliyuncs.com

使用镜像加速器地址

Docker

配置 Linux Docker daemon

在 Linux 操作系统环境手动启动 dockerd 时传递 --registry-mirror 选项,或者编辑 /etc/docker/daemon.json 并添加 registry-mirrors 键和值,以使更改持久化。

如果 /etc/docker 目录不存在,需要手工创建

1
$ sudo mkdir -p /etc/docker
1
2
3
{
"registry-mirrors": ["https://<随机字符串>.mirror.aliyuncs.com"]
}

保存文件并重新加载 Docker 以使更改生效。

1
2
3
$ sudo systemctl daemon-reload

$ sudo systemctl restart docker

配置 macOS / Windows Docker Desktop

选择 Docker Engine

1
2
3
4
5
{
"experimental": true,
"debug": true,
+ "registry-mirrors": ["https://<随机字符串>.mirror.aliyuncs.com"]
}

检查镜像加速器地址

在命令行执行 docker info,如果从结果中看到了如下内容,说明配置成功。

1
2
3
4
5
$ docker info
...
Registry Mirrors:
https://<随机字符串>.mirror.aliyuncs.com
...

Containerd

当您使用 Containerd 作为容器运行时,需要按照以下内容修改 Containerd 的 cri 配置,才能让 Pod 的镜像使用镜像加速器。配置路径一般为 /etc/containerd/config.toml

1
2
3
4
5
[plugins.cri]
[plugins.cri.registry]
+ [plugins.cri.registry.mirrors]
+ [plugins.cri.registry.mirrors."docker.io"]
+ endpoint = ["https://<随机字符串>.mirror.aliyuncs.com"]

重启 Containerd

1
2
3
$ systemctl daemon-reload

$ systemctl enable --now containerd

参考链接

[1] 官方镜像加速 - https://www.alibabacloud.com/help/zh/container-registry/latest/accelerate-the-download-of-docker-official-images

[2] Registry as a pull through cache | Docker Documentation - https://docs.docker.com/registry/recipes/mirror/

[3] 容器镜像服务_镜像构建_镜像授权_镜像托管-阿里云 - https://cn.aliyun.com/product/acr

[4] 注册账号 - https://help.aliyun.com/document_detail/69335.html

[5] 创建RAM用户 - https://help.aliyun.com/document_detail/93720.html

[6] containerd/getting-started.md at main · containerd/containerd - https://github.com/containerd/containerd/blob/main/docs/getting-started.md