使用容器镜像加速器
1. 在Docker上使用容器镜像加速器
容器镜像加速器本质上也是一个 Docker Registry,我们可以直接访问加速器地址拉取镜像,也可以配置 registry-mirrors 让 Docker Daemon 自动将访问 Docker Hub 的请求重定向到容器加速器地址,详细操作如下。
1.1 直接拉取容器镜像
hub.alduin.net 提供对 Docker Hub 的镜像加速,假设 Docker Hub 上的目标 repository 为 wbuntu/alpine,tag 为 3.18,可以直接通过以下方式拉取镜像:
docker pull hub.alduin.net/wbuntu/alpine:3.18
其他常用的 debian、alpine、nginx 等,归属于官方镜像,通过 hub.alduin.net 代理访问时,需要加上 library,如下:
docker pull hub.alduin.net/library/debian:12
拉取成功后可以使用 docker tag 命令重名容器镜像:
docker tag hub.alduin.net/library/debian:12 debian:12
1.2 配置registry-mirrors拉取容器镜像
Docker Daemon 的 registry-mirrors 配置只对拉取 Docker Hub 的容器镜像生效,对其他镜像仓库(如 ghcr.io、gcr.io、registry.k8s.io 等)、私有仓库无效。
在 Linux 环境下,创建一个/etc/docker/daemon.json 文件,内容如下:
{
"registry-mirrors": [
"https://hub.alduin.net"
]
}
然后重启 Docker Daemon
systemctl daemon-reload && systemctl restart docker
接着检查 Registry Mirrors 配置是否生效,可以看到输出中含有镜像加速器地址,现在 Docker 会自动将访问 Docker Hub 的请求切换到访问镜像加速器:
➜ ~ docker info | grep -A1 Registry
Registry Mirrors:
https://hub.alduin.net/
最后拉取一个 Docker Hub 上的容器镜像,验证是否可以正常使用加速器:
➜ ~ docker pull alpine:3.20
3.20: Pulling from library/alpine
ec99f8b99825: Pull complete
Digest: sha256:b89d9c93e9ed3597455c90a0b88a8bbb5cb7188438f70953fede212a0c4394e0
Status: Downloaded newer image for alpine:3.20
docker.io/library/alpine:3.20
Docker Desktop 用户可以在设置页面的 Docker Engine 中修改 json 文件配置,添加 registry-mirrors,修改后点击 Apply & restart 应用配置并重启服务。
2. 常用容器镜像仓库加速
除了 Docker Hub 外,我们可能还需要加速访问其他容器镜像仓库,详细内容参考:常用容器镜像仓库
3. 其他容器引擎配置
Docker 是最早也是最流行的容器引擎,但现在除了 Docker 外还有一些容器管理工具可以使用,如 Podman、Containerd、CRI-O 等,可以参考这篇文档配置加速:常用容器引擎