2019-04-07 编辑:
由于这是当前选择的答案,我认为人们应该首先尝试下面的@Anish Varghese 解决方案,因为它似乎是最简单的。
您只需要安装 gnupg2 和 pass 软件包:
sudo apt install gnupg2 通行证
如果不起作用,那么您可以在这里尝试我的原始解决方案:
我遇到过同样的问题。 bak2trak 答案有效,但它以明文形式保存了凭据。如果您想将它们保存在密码存储中,可以使用以下解决方案。
1)从下载 docker-credential-passhttps://github.com/docker/docker-credential-helpers/releases
2) tar -xvf docker-credential-pass.tar.gz
3) chmod u+x docker-credential-pass
4) mv docker-credential-pass /usr/bin
5)您需要设置 docker-credential-pass (以下步骤基于https://github.com/docker/docker-credential-helpers/issues/102#issuecomment-388634452)
5.1) 安装 gpg 并通过 (apt-get install gpg pass
)
5.2) gpg --generate-key
,输入您的信息。你应该看到这样的东西:
pub rsa3072 2018-10-07 [SC] [expires: 2020-10-06]
1234567890ABCDEF1234567890ABCDEF12345678
复制 123... 行
5.3) pass init 1234567890ABCDEF1234567890ABCDEF12345678
(paste)
5.4) pass insert docker-credential-helpers/docker-pass-initialized-check
并设置
下一个密码“密码已初始化”(不带引号)。
5.5) pass show docker-credential-helpers/docker-pass-initialized-check
。您应该看到 pass 已初始化。
5.6) docker-credential-pass list
6) 创建 ~/.docker/config.json :
{
"credsStore": "pass"
}
7) docker 登录现在应该可以工作了
注意:如果您在以后的运行中收到错误“通行证存储未初始化”,请运行以下命令(它将重新加载内存中的通行证存储):
pass show docker-credential-helpers/docker-pass-initialized-check
它将询问您的密码并初始化通行证存储。
这是基于以下讨论:https://github.com/moby/moby/issues/25169#issuecomment-431129898