Docker登录到Powershell中的gcr.io

Docker登录到Powershell中的gcr.io,powershell,docker,google-cloud-platform,google-container-registry,Powershell,Docker,Google Cloud Platform,Google Container Registry,我正试图使用一个浏览器登录到Windows10上的Google容器注册表。我的Mac电脑上没有任何问题,所以密钥文件肯定能正常工作 首先,我在让docker登录函数接受JSON密钥文件的内容时遇到了问题。我已尝试运行/set/p传递。。。命令,我在Powershell中尝试了类似的方法: docker login-u_json_key-p$Get Content keyfile.json 这些都会导致错误或以下情况: docker登录最多需要1个参数 因为我不能让它工作,我跑: docker登录

我正试图使用一个浏览器登录到Windows10上的Google容器注册表。我的Mac电脑上没有任何问题,所以密钥文件肯定能正常工作

首先,我在让docker登录函数接受JSON密钥文件的内容时遇到了问题。我已尝试运行/set/p传递。。。命令,我在Powershell中尝试了类似的方法:

docker login-u_json_key-p$Get Content keyfile.json

这些都会导致错误或以下情况:

docker登录最多需要1个参数

因为我不能让它工作,我跑:

docker登录-u\u json\u密钥

然后手动删除JSON文件中的所有断点,将其复制到剪贴板,并在提示输入密码时粘贴

这导致:

登录成功

问题解决了!对吧?

显然不是。我仍然无法提取我的图像,当我运行docker info时,列出的唯一注册表是

我尝试以管理员的身份启动Powershell,重新启动并重置docker,但似乎没有任何帮助

有人知道发生了什么事吗?如何调试这个


我正在运行Docker version 17.12.0 stable

我现在使用的技巧是删除键中的所有换行符,复制它,然后在提示输入密码时粘贴它,而不是尝试将它传递到-p参数。 结果我不得不将url改为eu.gcr.io,而不仅仅是gcr.io

我在GCR文档页面上写了一些反馈——希望他们能修复它,甚至可能在Powershell中添加正确的方法


我唯一想知道的是,为什么我看不到我在docker info中登录了GCR。

我现在使用的技巧是删除密钥中的所有换行符,复制它,然后在提示输入密码时粘贴它,而不是尝试将它传递到-p参数。 结果我不得不将url改为eu.gcr.io,而不仅仅是gcr.io

我在GCR文档页面上写了一些反馈——希望他们能修复它,甚至可能在Powershell中添加正确的方法


我唯一想知道的是,为什么我看不到我在docker信息中登录了GCR。

我找到了一个解决方案,它既适用于PowerShell中的Windows,也适用于bash。秘密在于使用这个方法

帮助文本和版本:

PS C:\Users\andy> docker login --help

Usage:  docker login [OPTIONS] [SERVER]

Log in to a Docker registry

Options:
  -p, --password string   Password
      --password-stdin    Take the password from stdin
  -u, --username string   Username
PS C:\Users\andy> docker -v
Docker version 18.06.1-ce, build e68fc7a
PS C:\Users\andy>

我在PowerShell和bash中找到了一个同时适用于Windows的解决方案。秘密在于使用这个方法

帮助文本和版本:

PS C:\Users\andy> docker login --help

Usage:  docker login [OPTIONS] [SERVER]

Log in to a Docker registry

Options:
  -p, --password string   Password
      --password-stdin    Take the password from stdin
  -u, --username string   Username
PS C:\Users\andy> docker -v
Docker version 18.06.1-ce, build e68fc7a
PS C:\Users\andy>
在PowerShell中:

获取Content keyfile.json | docker login-u(json)key-password stdinhttps://gcr.io 在PowerShell中:

获取Content keyfile.json | docker login-u(json)key-password stdinhttps://gcr.io
您能否分享在执行docker pull命令时收到的错误消息?您链接到docker的项目服务帐户似乎无法访问安全存储docker图像的容器注册表。您可能需要检查您的project service帐户是否具有必需的容器注册表访问权限?请参阅以了解更多详细信息。我在Mac上使用相同的密钥文件,在那里我可以毫无问题地执行pull命令。我只是想知道为什么docker登录报告成功了,但我在docker信息中看不到gcr.io作为注册表。我尝试了云文档中建议的方法——这是我文章中的第一个链接:显然,其中一个本地化主机名(如美国、欧盟或亚洲)必须为docker添加URL gcr.io。您能否确认docker info中的哪些信息使您怀疑您未登录?您能否分享在执行docker pull命令时收到的错误消息?您链接到docker的项目服务帐户似乎无法访问安全存储docker图像的容器注册表。您可能需要检查您的project service帐户是否具有必需的容器注册表访问权限?请参阅以了解更多详细信息。我在Mac上使用相同的密钥文件,在那里我可以毫无问题地执行pull命令。我只是想知道为什么docker登录报告成功了,但我在docker信息中看不到gcr.io作为注册表。我尝试了云文档中建议的方法——这是我文章中的第一个链接:显然,其中一个本地化主机名(如美国、欧盟或亚洲)必须为docker添加URL gcr.io。你能确认docker信息中的哪些信息让你怀疑你没有登录吗?未知标志:-密码stdin~|⇒ docker-v docker版本17.05.0-ce,内部版本89658be@ArjunNayak更新您的docker版本。如果你是通过操作系统软件包维护者(如Ubuntu或LinuxMint)安装的,你很可能会被旧版本卡住。Docker有步骤在其网站上安装最新版本。未知标志:-密码stdin~|⇒ docker-v
Docker版本17.05.0-ce,内部版本89658be@ArjunNayak更新您的docker版本。如果你是通过操作系统软件包维护者(如Ubuntu或LinuxMint)安装的,你很可能会被旧版本卡住。Docker有步骤在其网站上安装最新版本。