当前位置: 首页 > news >正文

Docker 报错“x509: certificate signed by unknown authority”的排查与解决实录

目录

🔧Docker 报错“x509: certificate signed by unknown authority”的排查与解决实录

📌 问题背景

🧪 排查过程

步骤 1:确认加速器地址是否可访问

步骤 2:检查 Docker 是否真的使用了镜像加速器

步骤 3:重新申请镜像加速器地址

✅ 解决方案

💡 总结与经验教训

🔚 结语


🔧Docker 报错“x509: certificate signed by unknown authority”的排查与解决实录

在使用 Docker 拉取镜像时,我遇到了如下错误:

Error response from daemon: Get "https://registry-1.docker.io/v2/": x509: certificate signed by unknown authority

这类错误通常是由于 TLS 证书验证失败引起的,但在实际排查中,我发现问题远比字面上看起来复杂,最终原因竟是镜像加速器链接已过期。这篇文章记录整个排查与解决过程,希望能帮到遇到类似问题的你。


📌 问题背景

我的 Docker 配置如下(/etc/docker/daemon.json):

{"log-opts": {"max-size": "5m","max-file": "3"},"exec-opts": ["native.cgroupdriver=systemd"],"data-root": "/home/docker","registry-mirrors": ["https://dcf9dea02c7476d35af619.mirror.swr.myhuaweicloud.com"]
}

按理说,配置了华为云的镜像加速器后,镜像拉取应当变得更加顺畅,但 Docker 却频繁报出 TLS 证书校验错误,导致无法拉取如 hello-world 这样的公共镜像。


🧪 排查过程

步骤 1:确认加速器地址是否可访问

我尝试用 curl 测试镜像加速器接口:

curl -v https://dcf9dea02c7476d35af619.mirror.swr.myhuaweicloud.com/v2/

返回结果如下:

{"errors":[{"errorCode":"SVCSTG.SWR.4010000","errorMessage":"Authenticate Error"}]}

说明 TLS 没问题,但访问被拒绝(401 Unauthorized)。这提示我当前的加速器地址可能需要认证,或者已经失效。


步骤 2:检查 Docker 是否真的使用了镜像加速器

使用以下命令检查配置是否生效:

docker info | grep -i registry

结果表明,Docker fallback 到了官方的 Docker Hub registry-1.docker.io,而 Docker Hub 的证书因系统 CA 不全而报错。


步骤 3:重新申请镜像加速器地址

这时候我怀疑原来的加速器地址已经过期,访问如下华为云控制台页面:

🌐 https://console.huaweicloud.com/swr/?region=cn-north-9#/swr/mirror

重新生成了属于我当前账号的 镜像加速器地址,例如:

https://xxxxx.mirror.swr.myhuaweicloud.com

✅ 解决方案

我将 daemon.json 文件更新为新的加速器地址:

{"log-opts": {"max-size": "5m","max-file": "3"},"exec-opts": ["native.cgroupdriver=systemd"],"data-root": "/home/docker","registry-mirrors": ["https://xxxxx.mirror.swr.myhuaweicloud.com"]
}

然后重启 Docker:

sudo systemctl daemon-reexec
sudo systemctl restart docker

再次执行:

docker pull hello-world

镜像拉取成功 ✅!


💡 总结与经验教训

  • x509 证书报错不一定是 TLS 问题,可能是 Docker fallback 到 Docker Hub;

  • 私有镜像加速器地址是会过期的,使用失效链接会被 401 拒绝;

  • 应定期访问镜像服务平台,更新加速器地址

  • docker info 是排查是否使用加速器的关键工具;

  • 配置完镜像加速器后务必重启 Docker,并验证生效。


🔚 结语

如果你也遇到了类似的 TLS 或证书错误,不妨从镜像加速器配置入手。别急着配置 insecure-registries,很可能只是你用了一个失效的链接。

欢迎留言交流,或将此经验分享到团队,避免大家踩同样的坑!

相关文章:

  • 网站添加微博百度自动点击器怎么用
  • 苏州到深圳物流公司搜索引擎seo是什么
  • 用家里的电脑做网站服务器郑州seo优化顾问
  • 做网站运营有趣吗线上营销推广渠道
  • 溧水区住房城乡建设局网站windows优化大师怎么用
  • 微信官方网站在线客服沧州网络推广公司
  • CentOS下安装JDK17
  • CentOS 7 编译安装Nginx 1.27.5完整指南及负载均衡配置
  • Luckysheet Excel xlsx 导入导出互相转换
  • RSS解析并转换为JSON的API集成指南
  • 关键领域软件工厂的安全中枢如何全面升级供应链检测能力
  • CentOS 7 通过YUM安装MySQL 8.0完整指南
  • Redis的渐进式hash和缓存时间戳深入学习
  • PYTHON从入门到实践4-数据类型
  • 深入JVM:从零到实战,解锁Java性能与调优的终极武器
  • doris_工作使用整理
  • 记录某企业存储型XSS漏洞从发现到数据外泄全路径分析
  • Python 数据分析与可视化 Day 6 - 可视化整合报告实战
  • logback 日志不打印
  • uni-app项目实战笔记24--uniapp实现图片保存到手机相册
  • WEB安全--Java安全--jsp webshell免杀1
  • 【学习记录】Git Base使用-免密连接代码仓库
  • C2远控篇PowerShellC#对抗AV-EDR停用AMSI接口阻断ETW跟踪调用
  • 如何解决管家婆软件登录界面点下一步没有反应的问题
  • 3DSwiper 好看的走马灯轮播图
  • 医疗AI数智立体化体系V2.0泛化多模块编程操作手册--架构师版(上)