Docker Registry Proxy
Docker 镜像加速
把 Docker Hub / GHCR / Quay / Kubernetes Registry 镜像转换为已配置代理域名下的拉取命令,也可以将 Docker Hub 作为 Docker daemon 的 registry mirror 使用。
生成拉取命令
支持 Docker Hub 官方镜像、命名空间镜像、GHCR、Quay 和 registry.k8s.io,例如 redis:7、ghcr.io/owner/image:latest、quay.io/prometheus/prometheus:latest、registry.k8s.io/pause:3.9。
Docker daemon 配置
配置后可以继续使用 Docker Hub 原始镜像名,Docker 会把 Docker Hub 请求转到已配置的代理域名。
Linux 常见位置是 /etc/docker/daemon.json,Docker Desktop 可在设置里的 Docker Engine 中修改。
containerd 配置
以下配置使用首个代理节点加速 Docker Hub、GHCR、Quay 和 Kubernetes Registry,同时保留各官方仓库作为回退。
-
启用 registry hosts 配置目录
编辑
/etc/containerd/config.toml,根据 containerd 主版本加入对应配置;如果已经配置了相同的config_path,无需重复添加。containerd 1.x:
[plugins."io.containerd.grpc.v1.cri".registry] config_path = "/etc/containerd/certs.d"containerd 2.x:
[plugins.'io.containerd.cri.v1.images'.registry] config_path = '/etc/containerd/certs.d' -
创建各 Registry 的 hosts.toml
每个 Registry 使用独立目录。先创建所需目录:
sudo mkdir -p /etc/containerd/certs.d/{docker.io,ghcr.io,quay.io,registry.k8s.io}Docker Hub
保存到
/etc/containerd/certs.d/docker.io/hosts.toml:GHCR
保存到
/etc/containerd/certs.d/ghcr.io/hosts.toml:Quay
保存到
/etc/containerd/certs.d/quay.io/hosts.toml:Kubernetes Registry
保存到
/etc/containerd/certs.d/registry.k8s.io/hosts.toml: -
应用并验证
首次设置
config_path后执行sudo systemctl restart containerd。可分别使用crictl pull docker.io/library/alpine:latest、crictl pull ghcr.io/owner/image:latest、crictl pull quay.io/prometheus/prometheus:latest和crictl pull registry.k8s.io/pause:3.9验证。之后只修改hosts.toml通常无需重启 containerd。
Podman 配置
Podman 可以在一个 registries.conf 中配置多个 Registry。以下内容使用首个代理节点,并保留官方仓库作为回退。
-
选择配置文件
系统级配置写入
/etc/containers/registries.conf.d/reducetime.conf;仅当前用户使用时,可写入~/.config/containers/registries.conf。 -
写入代理配置
-
验证配置
无需重启 Podman。可使用
podman pull docker.io/library/alpine:latest、podman pull ghcr.io/owner/image:latest、podman pull quay.io/prometheus/prometheus:latest和podman pull registry.k8s.io/pause:3.9分别验证。
支持的仓库
docker.ioghcr.ioquay.ioregistry.k8s.io