docker - 谷歌容器注册 + 谷歌计算引擎 + Docker

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

我无法找到让所有这三种技术协同工作的方法。

我有谷歌容器注册表。在其中,我有 2 个私有(private)图像,我们称它们为 A 和 B。我想创建一个执行以下操作的单个实例模板:

  • docker run -d gcr.io/project_id/A:最新
  • docker run -d gcr.io/project_id/B:最新

  • 这就是我需要做的。我希望在启动脚本中执行此操作,这样我就可以使用普通图像作为基础,然后可以将其部署在 prod 中。

    已经尝试了所有 3 个版本的 Container Optimized OS,以及所有 3 个版本的 CoreOS。每个都给出略有不同的错误。

    一些 examples建议使用 gcloud docker -- pull ,但 gcloud 在我尝试过的 6 个环境中的任何一个中都不能正确地进行身份验证。

    其他 examples建议使用 docker login -u oauth2accesstoken -p "$(gcloud auth application-default print-access-token)" https://gcr.io ,这也失败了。

    我发现的唯一其他选择是 docker login -u _json_key -p "$(cat keyfile.json)" https://gcr.io ,这确实允许我然后拉 GCE 图像。这种方法的缺点是如何在图像中获取该 key 文件?我想我可以使用添加的 key 文件制作自定义图像,但我试图坚持使用我的两个 docker run 命令的库存图像,仅此而已。这是不可能的吗?

    最佳答案

    您具体看到了什么错误?

    docker-credential-gcr能够从 GCE 元数据中提取访问 token 。它还可以通过执行 gcloud config config-helper --format='value(credential.access_token) 来拉取 gcloud SDK 的访问 token 。在幕后。 gcloud auth print-access-token过去使用过,但不受官方支持。

    关于docker - 谷歌容器注册 + 谷歌计算引擎 + Docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43924797/

    相关文章:

    docker - 如何在 Google Container Registry 中删除推送的镜像

    docker - 如何在 Google 私有(private)容器注册表中列出容器镜像版本

    docker - gcloud ping尝试执行 'docker push'失败

    elasticsearch - Docker 上的 Kibana 无法连接到 Elasticsearch

    spring-boot - 在 Azure Functions : Permission denied with server. 端口上运行 Spring Boot native 应用程序:80

    google-compute-engine - Google 计算引擎 CentOS Web 面板

    google-cloud-functions - Google Functions + 在实例上执行 bash 脚本

    google-cloud-platform - 如何更改 Google Cloud 中的区域/区域?

    docker - Traefik 和自签名 SSL

    docker - 如何修复 docker 错误 "no subsystem for mount"?