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

Docker无法使用pull-through cache拉取缓存的问题求助

Registry Mirrors:
https://localhost:5000/
...

---

## 排查与解决方案

### 1. 检查Registry缓存配置(核心)
拉取缓存功能需要在`registry-config.yml`中明确配置`proxy`段,否则Registry仅作为普通私有仓库,不会转发拉取请求到Docker Hub。正确配置示例:
```yaml
version: 0.1
log:
  fields:
    service: registry
storage:
  cache:
    blobdescriptor: inmemory
  filesystem:
    rootdirectory: /var/lib/registry
http:
  addr: :5000
proxy:
  remoteurl: https://registry-1.docker.io
  # 可选:拉取Docker Hub私有镜像时添加用户名和访问令牌
  # username: your-dockerhub-username
  # password: your-dockerhub-access-token

2. 修复HTTP/HTTPS不兼容问题

你配置的镜像源为https://localhost:5000/,但默认Registry容器仅提供HTTP服务,Docker客户端会拒绝不安全的HTTPS连接,转而直接访问Docker Hub。解决方法二选一:

  • 本地测试推荐:改用HTTP并配置不安全仓库
    修改Docker daemon配置文件(通常为/etc/docker/daemon.json):
    {
      "registry-mirrors": ["http://localhost:5000"],
      "insecure-registries": ["localhost:5000"]
    }
    
    重启Docker服务:
    sudo systemctl restart docker
    
  • 生产环境:配置HTTPS证书
    生成自签名证书或使用合法证书,修改Registry配置启用HTTPS(需同步更新Docker镜像源为https://localhost:5000)。

3. 验证缓存生效

删除本地已有的测试镜像,重新拉取并查看Registry日志:

# 删除本地镜像
docker rmi alpine:latest
# 拉取镜像
docker pull alpine:latest
# 查看Registry日志
docker-compose logs -f registry

若日志中出现proxying request相关内容,说明缓存已正常工作。

4. 其他排查点

  • 确认Docker daemon重启后,docker info显示的Registry Mirrors和Insecure Registries配置正确
  • 检查Registry容器状态:docker-compose ps,确保容器正常运行
  • 排查用户级配置文件~/.docker/config.json,确认没有覆盖全局镜像源设置

内容的提问来源于stack exchange,提问作者Chekote

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 12:30:41