无法使用凭据库登录Ubuntu 18上的Docker

无法使用凭据库登录Ubuntu 18上的Docker,docker,ubuntu,Docker,Ubuntu,我无法使用docker login登录docker 我正在执行: sudo docker login --username USERNAME --password PASSWORD 我得到以下错误: Error saving credentials: error storing credentials - err: exec: "docker-credential-pass": executable file not found in $PATH, out: `` 我试图寻找类似的错误,但

我无法使用
docker login
登录docker

我正在执行:

sudo docker login --username USERNAME --password PASSWORD
我得到以下错误:

Error saving credentials: error storing credentials - err: exec: 
"docker-credential-pass": executable file not found in $PATH, out: ``
我试图寻找类似的错误,但没有找到任何相关的

我正在使用:

Ubuntu 18.10

Docker版本18.06.0-ce,内部版本0ffa825


为什么会发生这种情况?

您收到的消息是,在您的系统路径中找不到在pass(www.passwordstore.org)中存储密码所需的docker凭证通行证凭证帮助程序。这也意味着您的凭证存储已配置为使用pass。在~/.docker/config.json中,应该有如下内容:

{
     "credsStore": "pass"
}
WARNING! Your password will be stored unencrypted in /home/foo/.docker/config.json.
如果要继续将pass用作凭据管理器,则需要安装docker凭据pass凭据帮助器()

网站上的安装说明目前尚不清楚(截至2018年9月21日),但我找到的最佳指南是在docker credential helpers项目中的一个问题中打开的:

当然,如果您只是不想使用凭据存储,请从配置中删除指定凭据存储的行,或将其设置为“”。请注意,您将收到关于docker登录凭据的警告消息,如下所示:

{
     "credsStore": "pass"
}
WARNING! Your password will be stored unencrypted in /home/foo/.docker/config.json.
有关更多信息,您可以查看Docker登录信息页面:


我也有同样的问题。我有一个关于为什么会发生这种情况的猜测,下面我给出了一个对我有效的解决方案

原因:我怀疑这是snap的打包错误。我使用GUI安装程序
Ubuntu软件安装了docker,该软件将docker安装为snap应用程序。这似乎导致了一些不寻常的行为。特别是,
docker login
似乎没有访问用户的
PATH
环境变量的权限,因此无论您将
docker凭证密码放在何处,它都找不到可执行文件。(或者,也许它可以去某个神奇的地方,但我不清楚如何找到合适的位置,
/bin
/snap/bin
/usr/bin
/usr/local/bin
对我都不起作用。)我想这与安装程序配置客户机主机的方式有关,docker文档说

Docker要求助手程序位于客户端的主机$PATH中

因此,我最好的猜测是它打包错误,
docker login
可见的
$PATH
是空字符串

解决方案:在任何情况下,这都意味着不通过GUI安装程序使用快照安装的修复方法(对我来说很有效)。因此:

  • 使用Ubuntu软件中的GUI卸载docker
  • 按照上的说明重新安装docker
  • 然后,我能够在我的
    $PATH
    docker登录名中放置
    docker凭证通行证
    ,然后最终按照预期操作


    希望这能有所帮助。

    遵循这一点。这是一个很好的描述。

    您正在尝试登录到/a docker存储库吗?(这就是登录命令的作用…)。无论如何,这一页可能会有所帮助:是的,我正在为当地发展设立项目,其中一个回购协议显然是私人的。感谢您的链接,尽管我已经阅读了文档,试图找到我做错的地方:)