Docker拉取镜像报错:x509:证书由未知权威机构签名(代理环境)
解决Docker拉取镜像时x509证书未知权威问题
这个问题我之前在公司代理环境里也踩过坑,核心原因就是咱们公司的代理做了中间人拦截,替换了Docker Hub的SSL证书,而Docker默认不认可代理的CA证书。下面给你几个靠谱的解决办法:
方法一:给Docker单独配置代理CA证书
- 先创建Docker对应镜像仓库的证书目录,Docker Hub的地址是
registry-1.docker.io,执行命令:mkdir -p /etc/docker/certs.d/registry-1.docker.io/ - 把公司代理的CA证书(比如你手里的
proxy-ca.crt)复制到这个目录里:
记得替换成你实际的证书路径和文件名哦。cp /path/to/your/proxy-ca.crt /etc/docker/certs.d/registry-1.docker.io/ - 重启Docker服务让配置生效:
对了,你之前的命令里打错成systemctl restart dockerhellow-world了,实际应该是hello-world,别再写错啦~
方法二:把代理CA证书加到系统信任列表
如果公司的代理证书是全系统通用的,也可以直接加到系统的CA信任池里,这样所有应用都能识别:
针对RHEL/CentOS系统:
- 复制证书到系统锚点目录:
cp /path/to/your/proxy-ca.crt /etc/pki/ca-trust/source/anchors/ - 更新系统信任证书:
update-ca-trust extract - 同样重启Docker服务:
systemctl restart docker
额外检查:确认Docker代理配置正确
别忘了确认你的Docker代理配置是对的,编辑/etc/docker/daemon.json(没有的话就新建),内容类似:
{ "proxies": { "default": { "httpProxy": "http://your-company-proxy:port", "httpsProxy": "https://your-company-proxy:port", "noProxy": "localhost,127.0.0.1,your-internal-domains" } } }
填好公司的代理地址和端口,还有不需要走代理的内部域名,保存后重启Docker就行。
内容的提问来源于stack exchange,提问作者Sadique Manzar
相关产品推荐
相关产品推荐

