版本:
- ubuntu 18.04
- docker 19.03
执行 docker login
登录镜像仓库的时候,抛出如下异常:
Remote error from secret service: org.freedesktop.DBus.Error.UnknownMethod:
No such interface ‘org.freedesktop.Secret.Collection’ on object at path /org/freedesktop/secrets/collection/login
Error saving credentials: error storing credentials - err: exit status 1, out:
No such interface 'org.freedesktop.Secret.Collection' on object at path /org/freedesktop/secrets/collection/login
解决办法
因为服务器安装了 golang-docker-credential-hepers
包,这个包是在使用apt包管理器安装 docker-compose 时装上的。
解决办法是先通过apt卸载掉golang-docker-credential-hepers这个包:
apt purge golang-docker-credential-helpers
然后重新登录,成功:
docker login private-repo-url
接着就可以正常push镜像:
# 1.首先打tag
docker tag image[:tag]|imageID [repo-domain or url-name/]project-name/image-repo[:tag]
# 如果本地镜像非远程仓库名:tag,可以加tag改为上面格式,或者将原有镜像另建新名称,用imageID,如果镜像本身符合push格式,可略过
# 2.login后可以正常push
docker push xxxx.com/xxx/xxx-ubuntu16.04:1.0
如果是私有仓库,遇到下面报错,格式又没问题的情况下,那就是登录名的权限问题了,需要使用admin
管理员账号登录。
总结两点,供参考:
-
login 权限问题,是否有push权限,私有仓库有这种问题
-
push 格式是否正确,默认docker hub下,用户名/仓库名:tag,private repo下, [repo-domain or url-name/]project-name/image-repo[:tag]
如果是公有仓库,如docker hub的仓库,直接docker login
,然后输入username pwd
,之后再执行docker push
即可把镜像push到仓库中。
参考: https://blog.csdn.net/u014563974/article/details/104877494