2019独角兽企业重金招聘Python工程师标准>>>
Docker login失败问题的处理
先是在一台安装了docker 18的机器上发现无法登录,报错为:
Remote error from secret service: org.freedesktop.Secret.Error.IsLocked: Cannot create an item in a locked collection
完整信息,如下:
docker login registry.cn-hangzhou.aliyuncs.com
Username: xxx@163.com
Password:
** Message: 05:55:27.024: Remote error from secret service: org.freedesktop.Secret.Error.IsLocked: Cannot create an item in a locked collection
Error saving credentials: error storing credentials - err: exit status 1, out: `Cannot create an item in a locked collection`
开始以为是Aliyun的问题,但是在另一台机器上是没问题的,找到了一个方案 :
sudo apt install gnupg2 pass
gpg2 --full-generate-key
# 上面这个命令生成需要一些真随机条件,所以需要在电脑上多操作(比如乱打键盘、乱动鼠标、乱操作磁盘)。然而因为我是连远程服务器,无法操作本地键盘和鼠标,远程键盘和鼠标好像是没用的,所以只能另开一个窗口操作磁盘。
# 下面的命令显示生成的密钥信息
gpg2 -k
# 把上面显示结果中的[uid]后面的部分复制到下面的命令里
pass init "[uid]内容"
现在登录。
但是,使用下面的方式失败:
docker login registry.cn-hangzhou.aliyuncs.com
Username: xxxxx@163.com
Password:
Error response from daemon: Get https://registry.cn-hangzhou.aliyuncs.com/v2/: unauthorized: authentication required
如果把用户名放到命令行中,就可以了。如下(估计是docker ce的bug):
sudo docker login --username=xxx@163.com registry.cn-hangzhou.aliyuncs.com
然后,报告是成功的。信息如下:
sudo docker login --username=xxx@163.com registry.cn-hangzhou.aliyuncs.com
Password:
WARNING! Your password will be stored unencrypted in /home/supermap/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
进行镜像的推送,都是可以的,如下:
docker push registry.cn-hangzhou.aliyuncs.com/openthings/databook
返回信息,显示正常。