我试图使用JSON密钥文件登录到Windows 10上的Google容器注册表。我在我的Mac上没有问题,所以密钥文件肯定是工作的。
首先,我在获取docker登录函数以接受JSON密钥文件的内容时遇到了问题。我试过运行"/set /p PASS.“在CMD中使用命令,我在Powershell中尝试了类似的方法:
码头管理员登录-u _json_key -p "$(Get-Content keyfile.json)“https://gcr.io
这些都会导致错误或以下情况:
“停靠者登录”最多需要一个参数。
因为我没能让它起作用,我跑了:
码头管理员登录-u _json_key https://gcr.io
然后手动删除JSON文件中的所有断点,将其复制到剪贴板上,并在提示输入密码时粘贴它。
其结果是:
登录成功
问题解决了!对吗?
显然不是。我仍然无法提取我的图像,当我运行码头信息时,唯一列出的注册表是"https://index.docker.io/v1/“。
我已经尝试启动Powershell作为管理员,并重新启动和重置对接,但似乎没有任何帮助。
有人知道怎么回事吗?我如何调试这个?
我运行的是Docker 17.12.0版本(稳定)
发布于 2018-04-04 16:52:58
我找到了一个适用于Windows (在PowerShell中)和bash的解决方案。秘诀是使用“使用stdin提供密码”。
cat gcr_registry-ro.json | docker login -u _json_key --password-stdin https://gcr.io
Login Succeeded帮助文本和版本:
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>发布于 2020-03-05 20:00:28
在PowerShell中:
(Get-Content keyfile.json) | docker login -u _json_key --password-stdin https://gcr.io发布于 2018-01-18 19:34:18
我现在使用的方法是删除键中的所有换行符,复制它,然后在提示输入密码时粘贴它,而不是尝试将它传递到-p参数中。结果,我不得不将url更改为eu.gcr.io,而不是只更改gcr.io。
我在GCR文档页面上写了一些反馈--希望他们能修复它,甚至在Powershell中添加正确的方法。
我仍然想知道的是,为什么我不能看到我登录到了码头信息中的GCR。
https://stackoverflow.com/questions/48310486
复制相似问题