docker容器如何与主机具有不同的风格

docker容器如何与主机具有不同的风格,docker,coreos,Docker,Coreos,我对linux容器的理解是,每个容器使用相同的主机内核,容器上的任何安装都只是主机上的一个隔离文件系统层 我正在看《coreos入门指南》。它展示了如何在包含coreos的主机上启动ubuntu容器 这怎么可能?主人和容器怎么会有不同的味道 谢谢, Murtaza内核和用户区是两个不同的东西。内核在所有发行版中几乎相同。当然,每个发行版的设置略有不同。例如,一个发行版可能决定排除一些驱动程序,因为它们不是完全免费的。另一个可能会决定包括额外的功能(比如Debian和Ubuntu有AUFS支持,这

我对linux容器的理解是,每个容器使用相同的主机内核,容器上的任何安装都只是主机上的一个隔离文件系统层

我正在看《coreos入门指南》。它展示了如何在包含coreos的主机上启动ubuntu容器

这怎么可能?主人和容器怎么会有不同的味道

谢谢,
Murtaza

内核和用户区是两个不同的东西。内核在所有发行版中几乎相同。当然,每个发行版的设置略有不同。例如,一个发行版可能决定排除一些驱动程序,因为它们不是完全免费的。另一个可能会决定包括额外的功能(比如Debian和Ubuntu有AUFS支持,这通常在其他发行版的内核中找不到)。Red Hat有自己的“经过战斗测试”的内核,它本质上是2.6.32,有大量的稳定性修复(听起来很旧,但它非常可靠)


99%的情况下,您可以使用发行版Y的内核毫无问题地引导发行版X。这就是为什么在CoreOS主机上运行Ubuntu容器是可以的:该容器完全是userland。这只是机器上运行的一组进程,只要内核支持名称空间和控制组(运行Linux容器所需的低级功能),那么内核来自何处都无关紧要。

感谢您的澄清。然而,考虑在基于FEDORA的主机上启动基于Debian的DeXo容器的情况。现在这两个都有不同的包管理器。那么这场冲突会发生吗?如果不是,为什么?上述规则还有哪些例外。@Murtaza2包管理器与内核无关。包管理器是一个安装在文件系统上的应用程序,负责管理在文件系统上安装软件。如果它在路径上可见,并且文件系统的布局正确,那么它将正常工作。在容器中,情况就是这样。进一步澄清一下:容器的文件系统与主机的文件系统完全分离。想象一下
chroot
(如果您已经使用了它),或者双引导(即使它有点长:-)