docker 主机操作系统和容器基础映像操作系统之间的关系是什么?



>我不确定我问的是正确的问题...但是当我一直在阅读我能得到的所有 docker 时,我看到我可以在 Ubuntu 12.04 上安装 Docker(例如),然后我可以安装 Fedora 容器或其他版本的 ubuntu?(有一个示例,用户在容器中安装了 busybox。

当然,我可能完全错了。

但我期望基本系统和容器之间存在短暂的联系。

重述:主机操作系统和容器基础映像的操作系统之间的关系是什么?

正如BraveNewCurrency所提到的,主机操作系统和容器之间唯一的关系是内核。

这是 docker 和"常规"虚拟机之间的主要区别之一,没有开销,一切都直接在主机的内核中发生。

这就是为什么您可以在容器中仅运行基于 Linux 的发行版/二进制文件的原因。如果你想运行其他东西,这并非不可能,但你需要在容器内进行某种虚拟化(qemu、kvm 等)。

Docker 管理作为文件系统表示形式的映像。您可以安装任何 linux 发行版或简单地放置二进制文件。

事实上,为了方便示例,我们通常依赖于基础映像,但您也可以在没有任何分发库/二进制文件的情况下创建映像。这样你就拥有一个非常小但功能强大的容器。

关于发行版的另一点:由于内核仍然是主机的内核,因此发行版不会提供任何特定的内核模块/补丁。

从字面上看,它们唯一的共同点是内核。他们的整个世界(文件系统)都在 docker 容器中。

还有另一个考虑因素 - 即使两个内核相同,如果主机操作系统不支持 Docker,也会有问题,例如 RHEL 6:https://access.redhat.com/solutions/1378023

因此,您将无法在RHEL 6上启动容器,即使该映像是Linux映像。

最新更新