OCF规范是否意味着Docker不再以Linux为中心?

时间:2016-01-01 22:54:42

标签: linux windows docker lxc runc

当我第一次听说微软was working to run docker containers时,它没有意义。

有一段时间似乎是Docker was Linux-centric,依赖于Linux Containers

现在看来,LXC的Docker has switchedOpen Containers Format(OCF)规范in runc的实现。

我的问题是: OCF规范是否意味着Docker不再以Linux为中心?(即这是如何工作的?这是否意味着在OSX上存在理论上的能力好?)

3 个答案:

答案 0 :(得分:5)

这里有一些兴趣点。

  1. 只有在支持操作系统虚拟化的平台上才能本地支持容器。 OSX(到目前为止)没有这样的能力。所以它本身不能支持容器。您必须使用VM。
  2. 标准化容器格式并不意味着同一容器可以在不同平台上运行。容器和主机必须在同一内核上运行。因此,特定容器只能在兼容平台上运行。
  3. 标准化容器格式规范的作用是从各种来源实现更丰富的容器生态系统技术,所有这些都能够通过标准容器格式进行互通。仍然必须为每个不同的主机平台实施此技术。
  4. Docker对OCF的采用并不一定意味着它会自动启动针对Linux以外的平台。它只是意味着它将在Linux上使用的容器格式将是OCF而不是它自己的专有格式。

答案 1 :(得分:3)

+1到Ziffusion。你可能想要改写第1项,但基本上你在所有四个方面都是正确的。

回答OP的问题:我不相信OCF“弃用”Linux。相反,我相信更好地支持 Linux 并且,在同一时间,打开Docker功能以更好地支持其他操作系统。

具体做法是:

  

https://www.opencontainers.org/faq

     

在过去的两年里,双方的兴趣都在快速增长   和使用基于容器的解决方案。几乎所有主要的IT供应商   和云提供商宣布了基于容器的解决方案   在这个地区成立的初创企业数量激增   好。虽然欢迎这个领域的思想激增,但是   承诺容器作为应用程序可移植性的来源需要   围绕格式和运行时建立某些标准。   虽然Docker项目的快速增长有助于实现这一目标   Docker图像格式是许多用途的事实标准,有   对单一,开放式容器规范的广泛兴趣,其中   是:

     

a)没有绑定到更高级别的结构,如特定的客户端或   编排栈,

     b)与任何特定的商业供应商没有紧密联系或   项目,和

     c)可移植到各种操作系统,硬件和CPU   架构,公共云等

常见问题解答进一步说明:

  

指导规范的价值是什么?

     
      
  • 可组合的。下载,安装和运行容器的所有工具都应该很好地集成,但是独立且可组合。   容器格式和运行时不应绑定到客户端   更高层次的框架等

  •   
  • Portable:运行时标准应该可以在不同的硬件,操作系统和云环境中使用。

  •   
  • 打开。格式和运行时应该由社区明确指定和开发。我们希望独立实现工具   能够始终如一地运行同一个容器。 ...

  •   

答案 2 :(得分:1)

Open Container Initiative致力于制作容器格式和可在许多平台上运行的运行时,尽管许多概念和要求将基于它们构建的Linux基础。 OCF容器仍指定一个平台,因此不希望能够在Linux主机上执行Windows容器。但希望能够管理Linux和Windows以及" Y"容器以相同的方式和生态系统。

Docker moved away from LXC前一段时间,使用仍然以Linux为中心的libcontainer。 runC is the next runtime已经能够在Linux上运行当前的docker容器,但旨在支持许多平台上的Open Container Format规范。

  

runC的目标是使标准容器随处可用

显然,Linux在过去十年中一直在构建支持容器的操作系统功能。微软已经在Windows 10中包含了许多操作系统组件来本机运行容器,并在docker之后提供了支持。所以希望runC很快就能在Windows上运行。

BSD确实通过它的Jails设置支持很多功能,但从未像Linux空间那样成熟,所以我相信它需要额外的操作系统支持,或者OSX能够运行OCF容器本身。虽然最近的FreeBSD 11确实允许你通过它64bit Linux compatibility layer运行Docker所以我猜测runC会接近做同样的事情,但是会有一些可能的性能成本。