Docker login失败问题的处理

在运行Docker 18的机器上遇到登录失败的问题,报错与Aliyun无关。解决方案是通过命令行指定用户名,这可能是Docker CE的一个bug。成功登录后,可以正常推送镜像。

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

返回信息,显示正常。

转载于:https://my.oschina.net/u/2306127/blog/3022275

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值