版本:
- 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
如果是私有倉庫,遇到下面報錯,格式又沒問題的情況下,那就是登錄名的權限問題了,需要使用管理員賬號登錄。

總結兩點,供參考:
-
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
