You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

执行docker system prune -a -f后无法构建Docker镜像,报x509: certificate signed by unknown authority错误求助

解决Docker构建时x509证书未知权威问题

嘿,别着急,你遇到的这个x509: certificate signed by unknown authority错误,大概率是执行docker system prune -a -f时不小心清理了Docker的证书缓存,或者系统层面的CA证书配置出了小问题。下面几个方案应该能帮你搞定:

  • 先试试最简单的:重启Docker服务
    有时候Docker的证书缓存会抽风,重启一下就能恢复正常。执行这条命令:
    sudo systemctl restart docker
    重启完再跑一遍你的构建命令:sudo docker build -t test_image .,看看能不能正常拉取镜像。

  • 更新系统的CA证书
    如果系统的根CA证书过期或者缺失,Docker拉取远程镜像时就会验证失败。针对你的Ubuntu系统,执行这几条命令更新证书:

sudo apt update
sudo apt install --reinstall ca-certificates
sudo update-ca-certificates

更新完成后记得再重启Docker服务,然后尝试构建。

  • 检查是否有Docker代理干扰
    如果你之前给Docker配过代理,可能代理的证书没被系统信任。可以先临时关掉代理试试:
  1. 打开Docker的配置文件/etc/docker/daemon.json,如果里面有http-proxy或者https-proxy的配置,先把它们注释掉(加//或者用#)或者直接删除。
  2. 重启Docker服务:sudo systemctl restart docker
  3. 再尝试构建镜像,看是否能正常拉取。
  • 手动拉取镜像导入本地
    要是上面的方法都不行,那就绕过远程拉取,手动下载镜像再导入Docker:
  1. 找到ubuntu:18.04的镜像包(可以用wget命令从官方源下载)
  2. 下载完成后用这条命令导入:sudo docker load -i ubuntu_18.04.tar
  3. 导入成功后,Docker构建时就会直接用本地的镜像,不用再去远程拉取了。

另外,如果是在企业内网环境,可能还需要把内网的CA证书添加到系统信任列表里:把证书文件复制到/usr/local/share/ca-certificates/目录,然后执行sudo update-ca-certificates,再重启Docker就行。

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

火山引擎 最新活动