我无法找到让所有这三种技术协同工作的方法。
我有谷歌容器注册表。在其中,我有 2 个私有(private)图像,我们称它们为 A 和 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/