Google Container Registry + Google Compute Engine + Docker

时间:2017-05-11 20:16:46

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

我无法找到让所有这三项技术合作的方法。

我有Google Container Registry。在其中,我有2个私有图像,让我们称它们为A和B.我想创建一个实例如下的实例模板:

  1. docker run -d gcr.io/project_id/A:latest
  2. docker run -d gcr.io/project_id/B:latest
  3. 这就是我需要做的一切。我希望在启动脚本中执行此操作,这样我就可以使用普通图像作为基础,并且可以将其部署在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,DID允许我随后拉取GCE图像。这种方法的缺点是如何在图像中获取密钥文件?我想我可以使用添加的密钥文件制作自定义图像,但我试图坚持使用我的两个docker run命令的股票图像而不是更多。这不可能吗?

1 个答案:

答案 0 :(得分:1)

你看到了什么错误,特别是?

docker-credential-gcr能够从GCE元数据中提取访问令牌。它还可以通过在场景下执行gcloud config config-helper --format='value(credential.access_token)来获取gcloud SDK的访问令牌。过去曾使用gcloud auth print-access-token,但未得到官方支持。