libcontainer与Docker vs OCF vs runc?

我试图更好地理解Docker世界,似乎不能把我的大脑包围在这些差异之间。 我相信 OCF是OpenContainers认可的新兴容器标准,我相信 Docker将成为该标准的第一个参考实现。 但即使如此,我担心Google神似乎不能为以下方面提供答案:

  • 什么是OCF“标准”? 只是一个书面文件? 一个书面的API? 一个编译的C库?
  • 这个标准所规定的具体项目的一些例子是什么? 我猜想,如果没有真正理解一个“ 容器 ”是什么,那么我很难理解容器的统治标准究竟是什么。
  • runc和libcontainer如何适合Docker / OCF方程?

开放容器格式(OCF)规范是定义什么是“标准容器”的文档(或文档集合),就文件系统,可用操作和执行环境而言。 该文件似乎用Go代码备份。 该规范目前(2015年7月)是一项正在进行中的工作。

Runc是标准的一个实现。 在撰写本文时,基本上是对libcontainer的重新包装。

Docker使用libcontainer / runc,但在顶部添加了许多工具和function,例如卷,networking和容器pipe理。

有关Docker博客和Open Containers站点的更多信息。

如果您刚刚开始使用容器,那么一旦理解了容器的工作方式,我将从Docker开始,稍后再研究其他项目。

以防万一偶然发现这个旧的线程,就像我刚刚做的那样:这个规范不再被称为OCF,它现在被称为“Open Container Initiative Runtime Specification”,上面的链接仍然有效,尽pipe它现在把你发送到https ://github.com/opencontainers/runtime-spec 。 有一个不同的OCF规范(开放式连接基础)。