无法将 Docker 映像推送到 GCP 容器注册表 [权限错误]

时间:2021-06-16 04:59:28

标签: docker google-cloud-platform

我正在尝试将 Docker 映像推送到我在 Google Cloud 平台上的容器注册表中。我能够在我的本地机器上成功构建我的图像。我尝试了以下命令:

sudo docker push eu.gcr.io/$PROJECT_ID/$CONTAINER_NAME

我收到一个权限被拒绝的错误:

<块引用>

未经授权:您没有执行此操作所需的权限,并且您的凭据可能无效。要验证您的请求,请按照以下步骤操作:https://cloud.google.com/container-registry/docs/advanced-authentication

我尝试按照提供的链接中的步骤进行操作,特别是 gcloud credential helper 说明。我也试过gcloud auth configure-dockergcloud auth login,都无济于事。关于 IAM 权限,我的个人电子邮件被列为所有者和存储管理员角色。我还手动设置了一个具有所有者和存储管理员角色的服务帐户。我的 $GOOGLE_APPLICATION_CREDENTIALS 环境变量指向从这个手动创建的服务帐户中提取的 json 文件。 gcloud auth configure-docker 提供以下输出:

WARNING: Your config file at [/home/awa5114/.docker/config.json] contains these credential helper entries:

{
  "credHelpers": {
    "gcr.io": "gcloud",
    "us.gcr.io": "gcloud",
    "eu.gcr.io": "gcloud",
    "asia.gcr.io": "gcloud",
    "staging-k8s.gcr.io": "gcloud",
    "marketplace.gcr.io": "gcloud"
  }
}
Adding credentials for all GCR repositories.
WARNING: A long list of credential helpers may cause delays running 'docker build'. We recommend passing the registry name to configure only the registry you are using.
gcloud credential helpers already registered correctly.

此时,我不明白为什么我会被拒绝将此映像推送到容器注册表中的权限。接下来我可以尝试什么?

1 个答案:

答案 0 :(得分:1)

我终于让它工作了。我做了两件事:

  • 使用其网站上的官方说明完全重新安装 docker。
  • 不要sudo 命令前使用 docker push....