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的奇偶性,但其余的呢?
(我知道容器共享主机内核,容器基础映像本质上是从发行版提取的文件系统,甚至是自己创建的文件系统。)
发布于 2015-02-12 22:30:20
容器不会看到或关心主机上的发行版,因此整个列都是无关紧要的。
如果容器中的应用程序需要来自内核的特性,而该特性不在您正在运行的内核上,则为'n',否则为'y‘。
发布于 2015-02-13 02:45:19
运行在主机上的所有容器实际上都在使用底层主机的内核。因此,在大多数情况下,容器的内核并不重要(在依赖于内核的某些特定行为的情况下,它可能很重要。请参见示例#2)
示例#1:主机操作系统:Ubuntu14.04.1(内核3.13.0-45)容器镜像:比如CentOS 5.11,RHEL5.11(包含内核2.6.18-398)
在容器( CentOS 5.11)中执行的任何进程实际上都将在底层内核3.13.0-45的上下文中运行!
没有为Container运行单独的操作系统/内核(在上面的情况下,内核2.6.18-398根本不运行)。
这实际上是容器立即启动的原因(它不运行任何额外的内核)。该进程是在底层内核的上下文中产生的,可以在主机操作系统上运行的top命令中看到。
示例(#2):容器很可能无法工作的情况:您正在尝试使用容器中的一些特定内核模块,这些模块在底层内核中不可用!
https://stackoverflow.com/questions/28476600
复制相似问题