hil*_*ius 13 docker google-cloud-platform gcloud google-container-registry
我尝试使用本教程将我的docker容器推送到google容器注册表,但是当我运行时
gcloud docker push b.gcr.io/my-bucket/image-name
Run Code Online (Sandbox Code Playgroud)
我收到错误:
The push refers to a repository [b.gcr.io/my-bucket/my-image] (len: 1)
Sending image list
Error: Status 403 trying to push repository my-bucket/my-image: "Access denied."
Run Code Online (Sandbox Code Playgroud)
我找不到任何解释(没有-D, - debug, - verbose参数被识别),gcloud auth list并docker info告诉我我已连接到这两个服务.
我缺少什么?
在创建Google Cloud VM实例时,请确保其具有足够的访问权限.
选项1
在Identity和API访问下,选择允许对所有Cloud API的完全访问权限.
选项2(推荐)
在Identity和API访问下,选择为每个API设置访问权限,然后选择Read Write for Storage.
使用gsutil检查ACL以确保你有写权限斗:
$ gsutil acl get gs://<my-bucket>
Run Code Online (Sandbox Code Playgroud)
您需要检查您所使用的帐户所在的组(“所有者”,“编辑者”,“查看者”等)。
编辑:最近我自己也遇到了一个非常类似的问题,正如@lampis在他的帖子中提到的,这是因为在创建要从中推送映像的VM时未设置正确的权限范围。不幸的是,创建虚拟机后,目前无法更改范围,因此您必须删除虚拟机(确保将磁盘设置为自动删除!),然后使用正确的范围(“ compute-rw”)重新创建虚拟机。 ,“ storage-rw”似乎足够)。没多长时间;-)。
请参阅以下--scopes部分:https : //cloud.google.com/sdk/gcloud/reference/compute/instances/create
如果您使用的是 Docker 1.7.0,它们处理身份验证的方式发生了重大变化,这会影响混合使用gcloud docker和 的用户docker login。
确保您通过以下方式使用最新版本的 gcloud:gcloud components update。
到目前为止gcloud docker,这似乎影响了docker-compose和其他正在读取/写入 Docker 身份验证文件的工具。
希望这有帮助。
| 归档时间: |
|
| 查看次数: |
10343 次 |
| 最近记录: |