最近安装了harbor,使用起来还比较方便,可以用来做docker镜像多地同步,管理docker镜像非常方便,但是在使用中,偶尔会出现一些莫名的错误,比如在推送镜像到harbor时,报如下错误:unauthorized: authorization required
推送命令如下:docker push docker-registry:443/base-image/centos:7
鉴权也做了,在TTY上也能正常登录到harbor registry,但是推送镜像时,就是不成功,就报这个错误,后来上harbor web端检查项目列表时,发现在harbor上没有对应的项目名,(在harbor中只有base-images,而不是base-image),解决的办法有两个:
- 在harbor上添加一个项目base-image(这种方式不推荐,因为放在harbor上的镜像通常为常用工具,而不应该自创一些项目名);
- 修改镜像名:操作简单,重新打一个tag,命令如下:
docker tag docker-registry:443/base-image/centos:7 docker-registry:443/base-images/centos:7
然后推送到docker registry上,
docker push docker-registry:443/base-images/centos:7
问题解决,一个很容易忽略的的错误,但是harbor没有给出正确的错误提醒。
注:当我们向harbor提交新的镜像因为找不到镜像名中对应的项目,除了会报上面的错误外,还会出现其他的报错信息:
例如我们成登录了harbor之后,推送镜像出现如下错误:
Get https://xxx:443/v1/_ping:dial tcp host_ip:443: getsockopt:connection refused
还是犯了和上面同样的错误
网友评论