docker的harbor仓库登录问题小结
作者:周湘zx
在使用Docker Harbor时,可能会因为证书信任问题或DNS解析问题导致登录失败,解决方法包括将自签名证书添加到系统的可信证书存储中,本文给大家介绍docker的harbor仓库登录问题,感兴趣的朋友一起看看吧
参考链接:Docker login Harbor报错解决:Error response from daemon: Get https:..-阿里云开发者社区
一、问题描述
问题:
挂机或者挂机重启之后harbor登录不上
查看日志查找问题:
[root@docker ~]# journalctl -u docker.service -n 50
[root@docker reg.zx.org]# docker logs 容器id
包含以下问题
# 1、容器重启失败 level=error msg="failed to start container" container=6bf913f9a5b0c395ca68505d39c3f0aa2e25054730bec1d49b64cf70a1530809 error="failed to create ta # 2、注册表问题 level=error msg="Handler for POST /v1.46/auth returned error: Get \"https://reg.zx.org/v2/\": dial tcp 172.25.254.111:443: connect: connection refused" # 3、DNS查询失败 level=error msg="[resolver] failed to query external DNS server" # 4、容器无法启动 level=error msg="failed to start container" container=...
二、证书信任问题
Self-signed Certificate (自签名证书)没有通过可信的证书颁发机构 (CA) 签署,所以验证失败,提示 verify error:num=18:self-signed certificate
。
将自签名证书添加到系统的可信证书存储中
#生成认证key和证书 [root@docker-node1 ~]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/zx.org.key \ > -addext "subjectAltName = DNS:reg.zx.org" \ > -x509 -days 365 -out certs/zx.org.crt [root@local ~]# mkdir /data/certs -p [root@local ~]# cp /root/certs/ /data/ -r [root@local certs]# ls /data/certs zx.org.crt zx.org.key
# Docker 中信任自签名证书 # 将证书复制到 Docker 的信任目录: Docker 在 /etc/docker/certs.d/ 下的特定目录中查找每个镜像仓库的信任证书。 [root@docker ~ ]# mkdir -p /etc/docker/certs.d/reg.zx.org/ [root@docker ~ ]# cp [root@docker ~ ]# cd certs/ [root@docker certs]# cp zx.org.crt /etc/docker/certs.d/reg.zx.org/zx.org.crt
# 将证书添加到信任存储 # 在 RHEL9中,系统使用 update-ca-trust 工具来管理系统信任存储。 # 将自签名证书文件 .crt 复制到 /etc/pki/ca-trust/source/anchors/ 目录中 [root@docker reg.zx.org]# cp ca.crt /etc/pki/ca-trust/source/anchors/ # 更新 CA 证书信任存储 [root@docker reg.zx.org]# update-ca-trust extract [root@docker reg.zx.org]# vim /etc/rc.d/rc.local # 开机自启动文件(将“update-ca-trust extract”写入) # 验证证书是否被信任 [root@docker reg.zx.org]# openssl s_client -connect reg.zx.org:443 …… Verify return code: 0 (ok) ……
三、DNS解析问题
[root@docker certs]# vim /etc/docker/daemon.json #添加或修改DNS解析地址 { "dns": ["8.8.8.8", "8.8.4.4","114.114.114.114"] } [root@docker certs]# systemctl daemon-reload [root@docker certs]# systemctl restart docker
四、解决
# 解决方案 [root@docker harbor]# systemctl restart docker # 重启docker [root@docker harbor]# docker ps -a # 查看容器是否全部运行 [root@docker harbor]# docker compose up -d # 若无,开启运行所有容器 [root@docker-harbor ~]# docker login reg.zx.org -uadmin -p123 # 再次登录
到此这篇关于docker的harbor仓库登录问题的文章就介绍到这了,更多相关docker harbor仓库登录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!