解决docker 推送自签证书仓库报错:x509: certificate signed by unknown authority错误

报错解释:

这个错误表明Docker客户端尝试与一个Docker仓库进行安全通信时,遇到了证书认证问题。具体来说,通信的服务器提供的SSL证书不是由一个受信任的认证机构签发的,客户端无法验证该证书的真实性。

解决方法:

如果你在使用自签名证书或者内部CA签发的证书,你需要手动将该证书添加到Docker客户端的信任列表中。可以通过以下命令实现:

bash 复制代码
sudo mkdir -p /etc/docker/certs.d/<仓库地址>:<端口>
sudo cp <证书路径> /etc/docker/certs.d/<仓库地址>:<端口>/ca.crt
sudo systemctl restart docker

将<仓库地址>和<端口>替换为实际的仓库地址和端口,<证书路径>替换为实际证书的路径。

如果你正在使用的是公有云提供的容器仓库服务,那么可能是服务端SSL证书有更新,需要更新Docker客户端到最新版本。

如果你不需要安全通信,例如在测试环境中,可以通过设置Docker客户端以不安全模式与仓库通信:

bash 复制代码
echo { "insecure-registries" : ["<仓库地址>:<端口>"] } | sudo tee /etc/docker/daemon.json
sudo systemctl restart docker

或者编辑/etc/docker/daemon.json文件

bash 复制代码
vim /etc/docker/daemon.json
json 复制代码
{
  "insecure-registries" :["https://你的域名"]
}

`

确保替换<仓库地址>和<端口>为实际的仓库地址和端口。不过请注意,这种方法不推荐在生产环境中使用,因为它会使通信容易受到中间人攻击。

相关推荐
小葱运维5 分钟前
日志规范(K8s 结构化日志)
运维·开源·云计算
周先生FullStack14 分钟前
Mac + 容器本地 MySQL/Redis 环境搭建与网络原理实战
java·spring boot·微服务·容器·架构·个人开发
是店小二呀17 分钟前
MySQL 监控总在重复配置?用 Shell 自动部署 mysqld_exporter,再让 Prometheus 远程抓取
docker
杨云龙UP23 分钟前
DB2 HADR 主备切换实战:SQL1639N 认证问题、备库只读与双向 Takeover
linux·运维·数据库·db2·主备切换·角色互换
凤城老人44 分钟前
从零手写开源私有云盘|Flask+Vue3+Electron全栈网盘,单容器一键部署
python·docker·electron·vue
吴声子夜歌1 小时前
Shell编程实例——bash的配置与自定义(二)
linux·运维·shell
Dovis(誓平步青云)1 小时前
突破 32 位瓶颈:64 位 XID 如何化解事务号回卷危机
运维·服务器·人工智能·docker·容器
是店小二呀1 小时前
开源鸿蒙PC原生适配:Node版本管理器命令行移植
docker·鸿蒙pc
为你学会写情书1 小时前
Docker 从入门到实战:容器化全栈项目,再顺手编排一个 Milvus 向量数据库
docker
yeyong1 小时前
是否可以在容器里监控GPU运行状态?
运维