oci-proxy

运行中

Cloudflare Worker 部署的 OCI 容器镜像代理 · 解决国内访问 Docker Hub、GHCR、GCR、k8s.io 慢或失败的问题。

当前部署域名 docker.mwh122.com 已启用 4/4 个注册表

注册表清单

下表列出本 Worker 支持的所有注册表及当前启用状态。

前缀 子域名 上游 说明 状态
docker docker.mwh122.com ↗ registry-1.docker.io Docker Hub 官方仓库(含 library/ 自动补全) 已启用
ghcr ghcr.mwh122.com ↗ ghcr.io GitHub 容器镜像仓库 已启用
gcr gcr.mwh122.com ↗ gcr.io Google 容器镜像仓库 已启用
k8s k8s.mwh122.com ↗ registry.k8s.io Kubernetes 官方镜像仓库 已启用

使用指南

① Docker Hub 镜像加速

配置 Docker 走代理拉取 Docker Hub 镜像。

{
  "registry-mirrors": ["https://docker.mwh122.com"]
}

写入 ~/.docker/daemon.json(Linux: /etc/docker/daemon.json)后重启 Docker,再拉取:

docker pull nginx:latest
② 其他注册表(GHCR / GCR / k8s.io)

同样使用 docker pull 拉取。这些注册表的镜像路径自带完整域名,把原域名替换为代理子域名即可:

# 原命令
docker pull ghcr.io/containerd/stargz-snapshotter:latest

# 改为代理
docker pull ghcr.mwh122.com/containerd/stargz-snapshotter:latest

未启用的注册表请在 Cloudflare Workers 环境变量中设置 REGISTRIES=ghcr,gcr,k8s(逗号分隔)后重新部署。

③ Kubernetes / containerd 集成(可选)

在节点上让 containerd 通过代理拉取镜像,编辑 /etc/containerd/config.toml:

[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
  endpoint = ["https://docker.mwh122.com"]

[plugins."io.containerd.grpc.v1.cri".registry.mirrors."ghcr.io"]
  endpoint = ["https://ghcr.mwh122.com"]

修改后重启 containerd:systemctl restart containerd。

验证部署