Docker容器和Linux主机之间是否匹配?

时间:2015-02-12 11:43:26

标签: docker

Docker容器可以托管在Linux机器上,但是我想确定哪种容器可以从下面的矩阵中放在特定的主机上:

                   kernel-version distro-type parity-check

host               x              y

container-type-A   x              y           ok
               B   < x            y           ok
               C   > x            y           ?
               D   x              z           ?
               E   < x            z           ?
               F   > x            z           ?

我可以推断出类型A和B的奇偶校验,但剩下的呢?

(我知道容器共享主机内核,容器基本映像本质上是从发行版中提取的文件系统,甚至是自己创建的。)

2 个答案:

答案 0 :(得分:2)

容器没有看到或关心主机上的发行版,因此整个列都无关紧要。

如果容器中的应用程序需要内核中没有运行的内核的功能,那么&#39; n&#39; n,&#39; n&#39;。

答案 1 :(得分:1)

主机上运行的所有容器实际上都在使用底层主机的内核。所以容器的内核在大多数情况下并不重要(在你依赖于内核的某些特定行为的情况下,这可能很重要。参见示例#2)

示例#1: 主机操作系统:Ubuntu 14.04.1(内核3.13.0-45) 容器图片:说CentOS 5.11,RHEL 5.11(内置2.6.18-398)

在容器(CentOS 5.11)中执行的任何进程实际上都将在底层内核3.13.0-45的上下文中运行!

没有为Container运行单独的OS /内核(在上面的情况下,内核2.6.18-398根本没有运行)。

这实际上是您的容器立即启动的原因(它不会运行任何其他内核。)该过程是在底层内核的上下文中生成的,可以在主机操作系统的最高命令运行中看到。

示例(#2):容器很可能无法工作的情况: 您正在尝试在容器中使用某些特定的内核模块,这些内核模块在底层内核中不可用!