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

Docker镜像拉取遇证书错误:无代理环境下CA证书是否损坏?

解决Docker Registry的x509证书未知权威问题

老哥,咱们来解决你遇到的这个Docker证书问题。既然你已经排除了代理的因素,那大概率是系统的CA证书出了损坏,或者Docker没正确加载系统信任的根证书。下面一步步来排查修复:

1. 先修复系统CA证书

首先得确认系统的根CA证书是不是真的损坏了,不同系统的操作略有区别:

  • Debian/Ubuntu系:
    运行这条命令重新生成CA证书缓存:
    update-ca-certificates --fresh
    
    要是发现证书文件缺失,直接重装证书包:
    apt install --reinstall ca-certificates
    
  • RHEL/CentOS/Rocky Linux系:
    更新CA信任存储:
    update-ca-trust extract
    
    证书损坏的话就重装证书包:
    yum reinstall ca-certificates
    

2. 让Docker正确识别系统CA证书

有时候Docker不会自动读取系统的CA证书,咱们手动给它配置一下:

  1. 创建Docker对应Registry的证书目录:
    mkdir -p /etc/docker/certs.d/registry-1.docker.io
    
  2. 把系统的根CA证书复制到这个目录,并重命名为ca.crt:
    • Debian/Ubuntu用这条:
      cp /etc/ssl/certs/ca-certificates.crt /etc/docker/certs.d/registry-1.docker.io/ca.crt
      
    • RHEL/CentOS用这条:
      cp /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem /etc/docker/certs.d/registry-1.docker.io/ca.crt
      
  3. 重启Docker服务让配置生效:
    systemctl restart docker
    

3. 临时测试方案(别在生产环境用!)

要是你只是想快速验证问题,能临时跳过证书验证(注意这会有安全风险,测试完一定要改回来):

  1. 编辑Docker的守护进程配置文件/etc/docker/daemon.json,如果没有就新建:
    {
      "insecure-registries": ["registry-1.docker.io"]
    }
    
  2. 重启Docker服务:
    systemctl restart docker
    
  3. 测试docker run hello-world,成功后记得把daemon.json里的配置删掉,再重启Docker。

4. 最后验证

做完上面的步骤后,再跑一遍docker run hello-world,要是能正常拉取镜像并输出欢迎信息,那就说明问题解决了。如果还是不行,记得检查一下系统时间是否正确——证书验证对时间很敏感,要是系统时间和实际差太多也会报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:19:19