搭建完Harbor仓库在测试时遇到的问题
在操作镜像上传到harbor私有仓库时,因服务端可正常用docker login -u admin -p Harbor12345 http://127.0.0.1 正常去登录,然后正常上传和下载,但是你发现其他客户端并没有安装私有仓库,其他客户端在登录的时候,你发现会有报错,始终登录不上去。如下:
[root@client ~]# docker login -u admin -p Harbor12345 http://20.0.0.32
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get https://20.0.0.32/v2/: EOF
注释:先解释下为什么服务端在登录的时候指向的地址是127.0.0.1,而客户端登录的时候指向的地址不是127.0.0.1,而是服务端真实的主机ip,因为Harbor登录默认https加密登录的,但是linux登录默认是http所以只能用测试ip127.0.0.1,因为127.0.0.1是系统默认的本地安全的地址,等你上传镜像到私库时,它会自动给你转化为主机ip,因为你在harbor.cfg配置文件中修改了本地的ip,系统会自动识别。(如果服务端需要使用本地主机的话,那么需要在/usr/var/systemd/system/docker.service 中添加不安全的注册的ip主机,表示不安全的主机也可以正常登录)服务器镜像上传成功后,会发现私有仓库默认的地址是服务器ip地址而不是本地测试地址,故客户端在登录时,要指向的ip是服务器ip而不是测试ip)
解决办法:
在docker的配置文件中添加harbor的主机地址
[root@client ~]# vim /usr/lib/systemd/system/docker.service
添加:
ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 20.0.0.32 --containerd=/run/containerd/containerd.sock
在准备执行那一栏ExecStart=/usr/bin/dockerd -H fd://后面添加 --insecure-registry 20.0.0.32 添加一个不安全的站点
[root@client ~]# systemctl daemon-reload 先守护进行重启,不要也会提示你必须要先操作这步骤
[root@client ~]# systemctl restart docker 然后在重启docker