容器注册表推送

Container registry push

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

我尝试了几件事,首先我尝试使用 visual studio 2019 社区设置发布。然后终于尝试了console,居然看到了unauthorized的错误

这是我尝试过的:

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

它表现得好像在运行,然后告诉我我没有权限

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

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

我从这个开始:

set /p PASS=<keyfile.json

当我按下回车键时,系统提示我输入命令:

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

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

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

有什么建议吗?

对于你的错误docker login requires at most 1 argument。重新阅读错误消息时,"at most 1 argument" 表示用户和密码未作为选项进行处理。很难看,但代码中的破折号有点长

试试这个:

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 他们自己。

为了将图像推送到 Container Register,Owner 角色默认具有 permissions

当您说您在 Windows 机器上执行此操作时,您的意思是您 installed Cloud SDK to push the image from your local machine? The issue could be that you are not authenticating 正确地进入了项目。

或者您的意思是您是通过 Windows 上的浏览​​器访问 GCP 和 运行 来自云端的命令 Shell?

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

gcloud auth configure-docker

阅读this

基本上,您需要对 gcloud 进行身份验证才能从 gcloud 目录push/pull。