【问题标题】:Problem authenticating Google GCP with Dockers使用 Docker 对 Google GCP 进行身份验证时出现问题
【发布时间】: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 不在系统路径中。 dockerdocker-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


    【解决方案1】:

    您的问题是gclouddocker 都没有为您登录的用户正确设置。以下是临时解决方案。您应该重新安装 docker 和云 SDK。

    验证以下路径的两个组件是否正确并针对您的安装进行调整。

    打开 Windows 命令提示符并执行:

    set PATH=C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\bin;C:\Program Files\Docker\Docker\Resources\bin;%PATH%
    

    【讨论】:

    • 我已经执行了命令,但似乎没有任何改变。返回相同的错误。如果这有任何改变,我已经用来自“where gcloud”的返回更新了 OP。另外,重新安装docker和cloud SDK时我应该做些什么不同的事情?两者都是带有标准选项的全新安装。
    • 输入docker --version。结果如何?
    • 输入gcloud version。结果如何?
    • docker:Docker 版本 18.09.0,构建 4d60db4 ========== gcloud:Google Cloud SDK 228.0.0 | bq 2.0.39 |核心 2018.12.07 | docker-credential-gcr | gsutil 4.34 |
    • 在您的消息中,您说 docker 不在 PATH 上,但您可以执行它,这意味着它在 PATH 上。
    【解决方案2】:

    找到解决方案:使用管理员帐户登录 Windows 本身。我的 OP 中提到的其他修复程序/线程都没有相关性。

    我有一个本地管理员帐户,但由于这是最近设置的,我习惯于登录到我常用的工作帐户(非管理员),并且只在需要时输入本地管理员凭据(例如,在运行程序时使用提升的权限)。

    所以 docker 和 powershell 和 cloud SDK 都可以使用管理员权限单独启动,但是在链的某个地方它会中断,并且不会提示我做任何事情。使用管理员帐户登录可以避免这种情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-23
      • 2019-02-21
      • 2021-06-09
      • 1970-01-01
      • 1970-01-01
      • 2019-02-26
      • 2017-03-11
      相关资源
      最近更新 更多