Google cloud platform 无法推送到Google容器注册表(访问被拒绝)
当我试图访问容器注册表时,它给了我以下错误 拒绝:项目“my-proj-123”的令牌交换失败。调用方没有“storage.bucket.create”权限。要配置权限,请按照以下位置的说明进行操作: 我必须遵循这个过程才能创建Google cloud platform 无法推送到Google容器注册表(访问被拒绝),google-cloud-platform,google-cloud-storage,google-container-registry,Google Cloud Platform,Google Cloud Storage,Google Container Registry,当我试图访问容器注册表时,它给了我以下错误 拒绝:项目“my-proj-123”的令牌交换失败。调用方没有“storage.bucket.create”权限。要配置权限,请按照以下位置的说明进行操作: 我必须遵循这个过程才能创建artifacts.my-proj-123.appspot.combucket。现在,当我尝试推送docker映像时,它不会抱怨storage.bucket.create权限,只会给出: 拒绝:访问被拒绝 我不知道我需要授予哪个用户访问权限。我给了存储管理员访问计算引擎默
artifacts.my-proj-123.appspot.com
bucket。现在,当我尝试推送docker映像时,它不会抱怨storage.bucket.create
权限,只会给出:
拒绝:访问被拒绝
我不知道我需要授予哪个用户访问权限。我给了存储管理员访问计算引擎默认服务帐户的权限,但没有用。如何修复它?我能够将Docker映像从服务器推送到容器注册表 如果您有权限问题,我建议您至少为计算引擎默认服务帐户授予项目编辑器权限,仅用于测试目的。即使只是针对云存储,流程的其他部分也可能需要更多权限。完成测试后,您可以使用较少的权限创建新的服务帐户,并根据需要对其进行微调 此外,还有一种替代
gcloud
的方法。您可以通过以下方式进行尝试:
VERSION=1.5.0
OS=linux # or "darwin" for OSX, "windows" for Windows.
ARCH=amd64 # or "386" for 32-bit OSs
curl -fsSL "https://github.com/GoogleCloudPlatform/docker-credential-gcr/releases/download/v${VERSION}/docker-credential-gcr_${OS}_${ARCH}-${VERSION}.tar.gz" \
| tar xz --to-stdout ./docker-credential-gcr \
> /usr/bin/docker-credential-gcr && chmod +x /usr/bin/docker-credential-gcr
docker凭证gcr配置docker
cat[your_service\u account\u credentials.json]| docker login-u\u json\u key--password stdin https://[HOSTNAME]
当我试图从容器优化操作系统将docker映像上载到GCR时,我遇到了类似的问题,我运行了以下命令序列
docker凭证gcr配置docker
docker登录-u_json_key-p“$(cat./mygcrserviceaccount.json)”https://gcr.io
docker推送gcr.io/project id/imagename:tage01
denied: Token exchange failed for project 'project-id'. Caller does not have permission 'storage.buckets.create'. To configure permissions, follow instructions at: https://cloud.google.com/container-registry/docs/access-control
我尝试通过IAM角色为我的服务帐户授予所有可能的权限,但失败的原因是相同的错误
读了这篇文章后,我做了以下修改
rm-rf~/.docker
docker凭证gcr配置docker
GOOGLE\u应用程序\u凭据=/path/to/mygcrserviceaccount.JSON
docker登录-u\u json\u key-p“$(cat${GOOGLE\u应用程序\u凭据})”https://gcr.io
docker push gcr.io/project id/imagename:tage01
瞧,它像一个符咒 对于最后一部分,我必须运行
docker login-u\u json\u key-p“$(cat keyfile.json)”https://[HOSTNAME]
才能获得“登录成功”。但结果与运行docker credential gcr gcr login
相同。它登录,可以docker推送
图像,但显然它没有创建清单文件,因此不能docker推送
。见我对@shou3301的回复。我删除了bucked,它成功了。(本文提示)使用json密钥,实际上并不需要docker凭证gcr。