【发布时间】:2019-06-01 19:10:52
【问题描述】:
我需要处理存储在 Google 的 gcr.io 集线器上的一些以前推送的 docker 图像。
我在 Windows 10 机器上执行此操作,标准安装了 Docker 和 Google Cloud SDK(没有 Homebrew 或类似的东西)。
在 GCP 的 IAM 部分为我的 gmail 帐户设置权限后,我在 PowerShell 中使用它时仍然收到此错误消息:
docker pull gcr.io/blabla/blabla:latest
来自守护进程的错误响应:未授权:您没有所需的 执行此操作的权限,您可能有无效的 证书。要验证您的请求,请按照以下步骤操作: https://cloud.google.com/container-registry/docs/advanced-authentication
在再次设置 authentication 时,我收到这些错误消息
C:\Program Files (x86)\Google\Cloud SDK>gcloud auth configure-docker
警告:
docker-credential-gcloud不在系统路径中。 gcloud的 可以配置 Docker 凭据帮助程序,但直到 这是纠正。警告:
docker不在系统路径中。docker和docker-credential-gcloud需要在同一个 PATH 中才能 一起正确工作。 gcloud 的 Docker 凭证助手可以是 已配置,但在更正此问题之前将无法正常工作。
在寻找解决方案时,我遇到了this thread,它似乎使用了 macOS 命令。我找到了 'which' 的 Windows 替代方案,即 'where',给出了这个:
C:\Program Files (x86)\Google\Cloud SDK>where gcloud
C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\bin\gcloud
C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\bin\gcloud.cmd
C:\Users\l.cai\AppData\Local\Google\Cloud SDK\google-cloud-sdk\bin\gcloud
C:\Users\l.cai\AppData\Local\Google\Cloud SDK\google-cloud-sdk\bin\gcloud.cmd
但是我在理解this post explaining the alternative for readlink 时遇到了很多麻烦。用文件路径替换该语法的一部分会给出
' ' 不是内部或外部命令
或
系统找不到指定的路径。
多行命令在 Windows PowerShell 或 CMD 中也不能正常工作,所以我不确定它们在哪里输入命令。
谁能帮我解决这个问题?非常感谢。
【问题讨论】:
标签: windows docker google-cloud-platform google-authentication google-cloud-sdk