You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让私有Docker Registry自动拉取Docker Hub公共镜像并缓存?

原生Docker Registry代理缓存功能实现说明

原生Docker Registry完全支持你需要的「本地无镜像时自动从上游拉取、自动缓存到本地」的需求,这个功能官方称为Pull Through Cache(拉通缓存),无需依赖第三方组件即可配置实现。

具体配置步骤

  • 你可以直接通过环境变量快速启动带代理缓存功能的Registry,无需手动修改配置文件,启动命令示例:
    docker run -d -p 5000:5000 --restart=always --name registry \
      -e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io \
      registry:2
    
    如果需要拉取Docker Hub下你的账号有权限访问的私有镜像,可以额外添加认证参数:
    docker run -d -p 5000:5000 --restart=always --name registry \
      -e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io \
      -e REGISTRY_PROXY_USERNAME=<你的Docker Hub用户名> \
      -e REGISTRY_PROXY_PASSWORD=<你的Docker Hub密码> \
      registry:2
    
  • 配置客户端Docker daemon,修改/etc/docker/daemon.json文件,添加你的私有Registry地址作为镜像加速源:
    {
      "registry-mirrors": ["http://<你的私有Registry服务器IP>:5000"]
    }
    
    修改完成后执行systemctl daemon-reload && systemctl restart docker使配置生效即可。

相关注意事项

  • 配置了代理缓存的Registry仅支持拉取操作,不支持直接向该Registry推送本地镜像,如果需要同时存储私有镜像和提供上游缓存能力,需要部署两套Registry,客户端通过镜像前缀区分访问目标。
  • 缓存的镜像默认过期时间为10分钟,你可以通过添加环境变量REGISTRY_STORAGE_CACHE_TTL自定义缓存保留时长。
  • 仅能缓存上游公开镜像、或是你配置的Docker Hub账号有权限访问的私有镜像,无权限的镜像无法拉取缓存。

内容的提问来源于stack exchange,提问作者Koray Kutanoğlu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 13:21:03