Docker Registry Proxy

Docker 镜像加速

把 Docker Hub / GHCR / Quay / Kubernetes Registry 镜像转换为已配置代理域名下的拉取命令,也可以将 Docker Hub 作为 Docker daemon 的 registry mirror 使用。

生成拉取命令

支持 Docker Hub 官方镜像、命名空间镜像、GHCR、Quay 和 registry.k8s.io,例如 redis:7ghcr.io/owner/image:latestquay.io/prometheus/prometheus:latestregistry.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,同时保留各官方仓库作为回退。

  1. 启用 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'
  2. 创建各 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

  3. 应用并验证

    首次设置 config_path 后执行 sudo systemctl restart containerd。可分别使用 crictl pull docker.io/library/alpine:latestcrictl pull ghcr.io/owner/image:latestcrictl pull quay.io/prometheus/prometheus:latestcrictl pull registry.k8s.io/pause:3.9 验证。之后只修改 hosts.toml 通常无需重启 containerd。

Podman 配置

Podman 可以在一个 registries.conf 中配置多个 Registry。以下内容使用首个代理节点,并保留官方仓库作为回退。

  1. 选择配置文件

    系统级配置写入 /etc/containers/registries.conf.d/reducetime.conf;仅当前用户使用时,可写入 ~/.config/containers/registries.conf

  2. 写入代理配置
  3. 验证配置

    无需重启 Podman。可使用 podman pull docker.io/library/alpine:latestpodman pull ghcr.io/owner/image:latestpodman pull quay.io/prometheus/prometheus:latestpodman pull registry.k8s.io/pause:3.9 分别验证。

支持的仓库

Docker Hubdocker.io
GitHub Container Registryghcr.io
Quay Container Registryquay.io
Kubernetes Container Registryregistry.k8s.io