如何设置Docker、 Containerd、 Podman容器镜像加速器?

从官方镜像仓库(如 Docker Hub、Kubernetes 镜像库)拉取镜像时,国内访问可能较慢,使用镜像加速器可以显著提高下载速度。官方镜像库可能受限于网络封锁、网络波动、带宽限制或地理位置的影响,导致拉取超时。加速器通常部署在更接近用户的服务器上,优化访问路径,减少超时问题。

如何获取国内可用的 Docker 镜像加速器可以参考 2025 年最新国内可用 Docker 镜像加速器汇总

获取到镜像加速器地址后可以按以下指引进行配置。

配置 docker 容器镜像加速器

Ubuntu16+、Debian8+、CentOS 7+、Almalinux 8+、Rocky Linux 8+

对于使用 systemd 作为服务管理器的操作系统,请在 /etc/docker/daemon.json 中写入如下内容(如果该文件不存在请新建该文件):

1
{ "registry-mirrors": ["https://reg-mirror.docker-cn.com"] }

重新启动服务使配置生效:

1
2
3

[root@server]# sudo systemctl daemon-reload && sudo systemctl restart docker

检查加速器是否生效

1
2
3
4
5

[root@server]# docker info
Registry Mirrors:
https://reg-mirror.docker-cn.com

Ubuntu14.04、 Debian 7 “Wheezy”

对于使用 upstart 作为服务管理器的操作系统而言,编辑 /etc/default/docker 文件,在其中的 DOCKER_OPTS 中配置加速器地址:

1
2
3

DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com"

重新启动服务使配置生效:

1
2
3

[root@server]# sudo service docker restart

Windows 10

对于使用 Windows 10 的系统,在系统右下角托盘 Docker 图标内右键菜单选择 Settings,打开配置窗口后左侧导航菜单选择 Daemon。在 Registrymirrors 一栏中填写加速器地址 https://reg-mirror.qiniu.com ,之后点击 Apply 保存后 Docker 就会重启并应用配置的镜像地址了。

Mac OS X

对于使用 Mac OS X 的用户,在任务栏点击 Docker for mac 应用图标-> Perferences…-> Daemon-> Registrymirrors。在列表中填写加速器地址 https://reg-mirror.qiniu.com。修改完成之后,点击 Apply&Restart 按钮,Docker 就会重启并应用配置的镜像地址了。

配置 Containerd 容器镜像加速器

Containerd 较简单,它支持任意 registry 的 mirror,只需要修改配置文件 /etc/containerd/config.toml,添加如下的配置:

1
2
3
4
5
6
7
8
9
10
11

[plugins."io.containerd.grpc.v1.cri".registry]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
endpoint = ["https://registry.docker-cn.com"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."k8s.gcr.io"]
endpoint = ["https://k8s.docker-cn.com"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."gcr.io"]
endpoint = ["https://gcr.docker-cn.com"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."ghcr.io"]
endpoint = ["https://ghcr.docker-cn.com"]

配置 Podman 容器镜像加速器

Podman 同样支持任意 registry 的 mirror,修改配置文件 /etc/containers/registries.conf,添加配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

unqualified-search-registries = ['docker.io', 'k8s.gcr.io', 'gcr.io']

[[registry]]
prefix = "docker.io"
insecure = true
location = "registry-1.docker.io"

[[registry.mirror]]
location = "docker.docker-cn.com"

[[registry]]
prefix = "k8s.gcr.io"
insecure = true
location = "k8s.gcr.io"

[[registry.mirror]]
location = "k8s.docker-cn.com"

[[registry]]
prefix = "gcr.io"
insecure = true
location = "gcr.io"

[[registry.mirror]]
location = "gcr.docker-cn.com"

[[registry]]
prefix = "ghcr.io"
insecure = true
location = "ghcr.io"

[[registry.mirror]]
location = "ghcr.docker-cn.com"

检查加速器是否生效

检查加速器是否生效配置加速器之后,如果拉取镜像仍然十分缓慢,请手动检查加速器配置是否生效,在命令行执行 docker info,如果从结果中看到了如下内容,说明配置成功。

参考文档

Docker 镜像加速

如何设置Docker、 Containerd、 Podman容器镜像加速器?

https://pengtech.net/docker/how-to-setup-docker-registry-mirrors.html

作者

鹏叔

发布于

2025-03-19

更新于

2025-03-20

许可协议

评论