如何从 openshift 上的 docker 容器内部启动新的 docker 容器

Chr*_*itt 5 docker openshift-origin

用例:

我想编写一个服务器应用程序,为每个客户启动一个 docker 容器,其中只有特定的客户数据(用于数据保护)。该服务应该在 openshift 或 openshift origin 上运行。

我搜索过的地方:

openshift origin 最新文档

openshift origin m4 文档

我已经知道的:

如果第一个容器是特权容器或者来自主机的 docker 套接字和二进制文件链接到其中,我可以从 docker 容器内部启动一个 docker 容器。

[编辑 31.10.15] 喜欢: docker run -v /var/run/docker.sock:/var/run/docker.sock ...

我不知道的:

是否可以在 openshift 上启动特权 docker 容器或从 docker 容器内部使用 openshift api 来启动其他 docker 容器(具有特定的运行时配置)?顺便说一句:“母”容器应该是可扩展的。

Cla*_*ton 0

这是可能的 - OpenShift 会做同样的事情来运行执行 Docker 和源代码构建的构建容器。在容器安全上下文中(在 pod 定义中)将 priviliged 设置为 true 并定义 /var/run/docker.sock 的卷挂载。

请注意,您需要有权启动特权容器(不允许普通用户设置特权或主机挂载),这可以通过将项目添加到“特权”安全上下文约束(https:// docs.openshift.org/latest/admin_guide/manage_scc.html)。在 1.0.7 中有一个策略命令可以更容易地实现oc policy add-scc-to-service-account