跳转到内容

Docker 镜像加速

HubProxy 兼容 Docker Registry API v2,可作为 Docker Hub 及多种第三方 Registry 的镜像加速入口。

编辑 /etc/docker/daemon.json(Windows 为 Docker Desktop 设置):

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

重启 Docker:

Terminal window
sudo systemctl restart docker
Registry 说明
Docker Hub 默认 registry-1.docker.io,无需路径前缀
ghcr.io GitHub Container Registry
gcr.io Google Container Registry
quay.io Red Hat Quay
registry.k8s.io Kubernetes 官方镜像

可在 config.toml[registries] 中扩展或禁用,详见 Docker 镜像源配置

Terminal window
# Docker Hub 官方镜像(无需写 library 前缀)
docker pull example.com/nginx
# Docker Hub 用户镜像
docker pull example.com/user/app:tag
# 第三方 Registry(路径含 registry 域名)
docker pull example.com/ghcr.io/owner/image:tag

官方镜像会自动补齐 library/ 命名空间,未指定标签时自动使用 latest,即 example.com/nginx 等价于 example.com/library/nginx:latest

Web 界面(enableFrontend = true)提供 Docker Hub 搜索与标签浏览,也可直接调用 API:

Terminal window
curl "https://example.com/api/search?q=nginx"
curl "https://example.com/api/tags/library/nginx"
  • 拉取一个镜像会请求多个 layer,每个 HTTP 请求均计入 IP 限流配额
  • 公网服务建议配置 [access].whiteList 限制可代理的镜像
  • 配合反向代理时确保正确传递客户端 IP,详见 反向代理配置
  • 当前版本对 Registry 使用匿名拉取,无法通过 HubProxy 拉取需要认证的私有镜像