在Docker容器里推荐GCE服务帐号authentication?
在定制的CentOS Docker容器中部署Google服务帐户凭证的最佳方式是在Google的Container Engine或其“container-vm”上运行? 这种行为自动发生在运行debian的google / cloud-sdk容器上,并且包含了我没有使用的东西,例如app-eng / java / php。 理想情况下,我试图访问我的项目中的非公共资源,例如Google Cloud Storage存储桶对象,而不必每次login和授权大量这些容器启动。
例如,在安装了自定义代码和gcloud / gsutil的GCE上运行的基础Centos容器上运行时:
docker run --rm -ti custom-container gsutil ls
系统会提示您运行“gsutil config”以获得授权,我期望。
然而,将google / cloud-sdk容器拉到相同的GCE上并执行相同的命令,似乎巧妙地configuration了凭据的inheritance(可能来自主机container-vm的凭据?)。 当在GCE上运行容器来访问专用资源时,这似乎绕过运行“gsutil config”。
我正在寻找复制这个行为在最小的build设Centos容器大规模部署。
更新:截至2016年12月15日,更新现有虚拟机的范围的能力现在处于testing阶段; 看到这个答案的更多细节。
旧答案:一种方法是创build具有适当范围的VM(例如,Google Cloud Storage只读或读写),然后VM上的所有进程(包括容器)都将有权访问可通过OAuth 2.0使用的凭据; 请参阅Google云端存储和Google计算引擎的文档。
需要注意的是,一旦一个虚拟机创build了一些范围集合,以后不能更改(既不添加也不删除),所以在创build虚拟机实例时,必须确保设置合适的范围集合。
跟进。
我结束了使用/.config&/.gce目录和一个非常小的一套GCE SDK组件(没有JDK / PHP /等)。 事实certificate, wheezy-cloudtools Dockerfile是我能find的最好的例子。
- 如何将Container VM上的docker容器与清单链接起来?
- 重新启动后,Google推送部署jenkins映像失败
- 如何将Spring Boot应用程序部署到Google Managed VM
- 从Google Cloud Container Registry中提取Docker镜像时,权限被拒绝
- 尽pipenetstat指出端口可用,Docker运行不能发布端口范围
- TERM环境variables未在Google Compute Engine上使用Docker进行设置
- Google Cloud Container-vm不会重新启动Docker容器
- Google云项目中的跨源资源共享错误
- Kubernetes豆荚是否支持NoRestart策略?