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的奇偶校验,但剩下的呢?
(我知道容器共享主机内核,容器基本映像本质上是从发行版中提取的文件系统,甚至是自己创建的。)
答案 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):容器很可能无法工作的情况: 您正在尝试在容器中使用某些特定的内核模块,这些内核模块在底层内核中不可用!