无法从Google Compute Engine访问Google Container Registry

时间:2017-01-19 00:28:41

标签: docker google-compute-engine gcloud google-container-registry

我正试图将Google容器注册表中的Docker图像转换为Google Compute Engine实例。 (我需要的图像已成功上传到GCR。)

  1. 我已使用gcloud auth login登录,然后尝试gcloud docker pull -- us.gcr.io/app-999/app,结果为ERROR: (gcloud.docker) Docker is not installed.

  2. 我尝试使用oauth进行身份验证,然后通过普通的docker调用进行身份验证。当我在.docker/config.json查看文件时,我看到了我的凭据。这样做,看起来它会起作用,但最终会像这样结束:

    mbname@instance-1 ~ $ docker pull -- us.gcr.io/app-999/app Using default tag: latest latest: Pulling from app-999/app b7f33cc0b48e: Pulling fs layer 43a564ae36a3: Pulling fs layer b294f0e7874b: Pulling fs layer eb34a236f836: Waiting error pulling image configuration: unauthorized: authentication required

  3. 看起来像进步,因为至少它试图下载一些东西。

    我在我的本地机器上也尝试过这两种方法,两种方法都很成功。

    我错过了什么吗?

    感谢您的帮助。

    P.S。我也尝试从另一个注册表加载一个容器( Docker Hub)并且工作正常,但我需要多个容器并希望降低费用。

2 个答案:

答案 0 :(得分:5)

在与Google支持小组联系后,他们通知我CoreOS gcloud别名中存在错误。通过覆盖shell中的别名来修复此错误,如下所示:

alias gcloud='(docker images google/cloud-sdk || docker pull google/cloud-sdk) > /dev/null;docker run -t -i --net=host -v $HOME/.config:/.config -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker google/cloud-sdk gcloud'

我已经尝试过了,现在就可以了。

答案 1 :(得分:0)

docker应包含在最新版本的gcloud中。您可以通过运行gcloud

更新到最新版本的gcloud components update