向harbor推送镜像时报unauthorizedauthorization required

最近安装了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

还是犯了和上面同样的错误

你可能感兴趣的:(向harbor推送镜像时报unauthorizedauthorization required)