docker - 无法从 Google Compute Engine 访问 Google Container Registry

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

我正在尝试将 Docker 镜像从 Google Container Registry 获取到 Google Compute Engine 实例上。 (我需要的图片已经成功上传到GCR。)

  • 我已使用 gcloud auth login 登录然后尝试 gcloud docker pull -- us.gcr.io/app-999/app结果是 ERROR: (gcloud.docker) Docker is not installed. .
  • 我尝试使用 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

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

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

    我错过了什么吗?

    谢谢你的帮助。

    附言我还尝试从另一个注册表加载容器(
    Docker Hub) 并且运行良好,但我需要多个容器并希望降低费用。

    最佳答案

    联系 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'
    

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

    关于docker - 无法从 Google Compute Engine 访问 Google Container Registry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41731814/

    相关文章:

    google-app-engine - 连接 Google App Engine 和 Google Compute Engine

    google-app-engine - 部署gae java时如何设置版本?

    没有特权访问的 Docker VPN IPSec 客户端

    docker - 如何在 docker 容器内运行服务以使用 gstreamer 从 IDS uEye 摄像头获取源?

    java - docker中带有参数的jar文件

    ssl - 在 Google Cloud DNS 中添加 AAAA 记录

    spring - 从外部访问kubernetes服务

    google-app-engine - 在测试环境中在 GAE (ndb) 和 GCE (gcloud.datastore) 之间共享数据存储

    kubernetes - 从Kubernetes中的Pod重新启动其他节点上的Pod

    django - 将 django web 应用程序连接到 gcloud 中的 postgresql