透明的 OCI 镜像 pull-through 镜像站。把镜像名前缀换成本服务,照常用 docker pull —— 冷的慢慢抓,热的一跳到 S3。
# Docker Hub 镜像无需加 host 前缀 docker pull c.runclaw.cloud/library/alpine:latest # 其他上游,名字里带上 host 即可 docker pull c.runclaw.cloud/ghcr.io/owner/image:tag
常见公共 registry 都能拉,Docker Hub 的不用加前缀。
docker pull c.runclaw.cloud/library/alpine:latest
docker pull c.runclaw.cloud/ghcr.io/owner/image:tag
docker pull c.runclaw.cloud/quay.io/organization/image:tag
docker pull c.runclaw.cloud/mcr.microsoft.com/dotnet/runtime:8.0
docker pull c.runclaw.cloud/public.ecr.aws/.../image:tag
c.runclaw.cloud/<host>/<repo>/<image>:<tag>
鸭子下水三步走,透明不藏猫腻。
客户端照常 docker pull,镜像名前缀换成 c.runclaw.cloud,其余不动。
缓存命中的 blob,直接 307 重定向到 S3 预签名链接,鸭子不中转字节流。
没缓存的 blob 返回 503 Retry-After,鸭子在后台抓取并校验 SHA-256;下次重试即命中。
一个镜像加速器该有的样子:快、省事、不折腾。
公共镜像无需任何认证,换个前缀就能拉,不用配 token、不用登录。
不改 Dockerfile、不装插件、不动 daemon,镜像名前面加上本站域名即可。
命中的层直接从对象存储取,不经服务中转,速度只看你的带宽。
第一次拉取稍等,鸭子在后台抓回并缓存;之后所有人再拉都是热的。
Docker Hub、GHCR、quay、MCR、public ECR,同一个地址全搞定。
multi-arch 镜像按客户端架构自动选层,amd64 / arm64 都行。