docker harbor私有仓库登录报错
docker harbor私有仓库登录报错如下:
[root@srv-1 ~]# docker login -u user1 -p pwd1 harbor.chinacloudapi.cn
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "https://harbor.chinacloudapi.cn/v2/": x509: certificate signed by unknown authority
通过报错信息 x509: certificate signed by unknown authority
可知,Docker 无法验证 Harbor 私有仓库所使用的 SSL 证书,这是因为该证书的颁发机构不被 Docker 信任。
下面是几种可行的解决办法:
方法一:将 Harbor 证书添加到 Docker 信任列表
可以把 Harbor 的 SSL 证书复制到 Docker 的信任证书目录。
步骤:
- 获取 Harbor 证书:把 Harbor 服务器上的 SSL 证书(一般位于
/data/cert
目录)复制到客户端的/etc/docker/certs.d/harbor.chinacloudapi.cn
目录。
mkdir -p /etc/docker/certs.d/harbor.chinacloudapi.cn
scp root@harbor_server:/data/cert/harbor.chinacloudapi.cn.crt /etc/docker/certs.d/harbor.chinacloudapi.cn/
- 重启 Docker 服务:
systemctl restart docker
- 重新登录:
docker login -u user1 -p pwd1 harbor.chinacloudapi.cn
方法二:使用不安全的注册表
若使用的是自签名证书,可将 Harbor 仓库设置为不安全的注册表。不过,这种方法存在安全风险,仅建议在测试环境中使用。
步骤:
- 编辑 Docker 配置文件:
vi /etc/docker/daemon.json
- 添加不安全的注册表配置:
{"insecure-registries": ["harbor.chinacloudapi.cn"]
}
- 重启 Docker 服务:
systemctl restart docker
- 重新登录:
docker login -u user1 -p pwd1 harbor.chinacloudapi.cn
通过上述任意一种方法,应该就能解决 Docker 登录 Harbor 私有仓库时的证书验证问题。