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

我不确定我问的问题是否正确... ... 但是当我阅读了所有我能得到的 Docker 文件后,我发现我可以在 Ubuntu 12.04上安装 Docker (例如) ,然后我可以安装一个 Fedora 容器或不同版本的 Ubuntu?(有一个例子,用户在容器中安装了 busybox。)

当然,我也可能完全错了。

但是我希望在基础系统和容器之间有一个短暂的连接。

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

33442 次浏览

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

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

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

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

Docker 管理文件系统表示的映像。

实际上,为了方便示例,我们通常依赖于基本映像,但是您也可以在不使用任何分发库/二进制文件的情况下创建映像。这样,您就有了一个非常小但功能齐全的容器。

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

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

所以你不能在 RHEL 6上旋转一个容器,即使这个映像是一个 Linux 的。