容器注册表推送

时间:2019-10-09 15:45:46

标签: docker google-cloud-platform google-container-registry

我正在尝试将docker映像推送到Google云容器注册表。但是我一直在未经授权。这是在Windows计算机上。

我尝试了几件事,首先我尝试使用Visual Studio 2019社区设置发布。然后我终于尝试了控制台,实际上看到了未经授权的错误。

这是我尝试过的:

docker push us.gcr.io:443/my-project-id/mycontainer

它的行为就像是然后告诉我我没有权限

然后建议使用高级身份验证方法,这使我创建了一个json密钥文件。为简单起见,我将密钥文件命名为“ keyfile.json”这样的简单名称。

然后我按照高级说明进行操作。

我从这个开始:

set /p PASS=<keyfile.json

当我按下Enter键时,我得到一个命令提示,然后继续输入以下内容:

docker login -u _json_key -p "$(cat keyfile.json)" https://us.gcr.io

我收到错误消息:docker login requires at most 1 argument

最后,我发现我可以使用google的存储库并构建工具来将图像放入存储库中,但我希望能够手动上传。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

对于您的错误docker login requires at most 1 argument。重新读取错误消息时,“最多1个参数”指示用户和密码未作为选项进行处理。很难看到,但是代码中的破折号更长了

尝试以下方法:

docker login -u my-username -p my-password registry.myclient.com

虽然外观相似,但-u-p–u–p不同(破折号略长)。

现在要弄清Project:Owner角色,听起来很奇怪,默认情况下不会授予您所有权限,但是如果您缺少项目中的任何权限(返回的错误将类似于[Missing necessary permission iam*] ... Please grant the roles/iam.* role),就能grant将它们自己给自己。

出于将图片推送到容器注册的目的,默认情况下,所有者角色为permissions

当您说要在Windows计算机上执行此操作时,是否表示您installed Cloud SDK从本地计算机推送图像?问题可能是您没有正确authenticating进入项目。

或者您是说您是通过Windows上的浏览器访问GCP并从Cloud Shell运行命令的?

答案 1 :(得分:0)

啊哈!我有这个问题。您需要做的是运行:

gcloud auth configure-docker

阅读this

基本上,您需要对gcloud进行身份验证才能从gcloud目录下推/拉出。