我不确定我是在问正确的问题......但是当我读到所有可以解决的Docker时,我看到我可以在Ubuntu 12.04上安装Docker(例如)然后我可以安装Fedora容器或不同版本的ubuntu吗? (有一个例子,用户在容器中安装了busybox。)
当然,我可能完全错了。
但我希望基本系统与容器之间存在短暂的连接。
重申:主机操作系统和容器基础映像的操作系统之间的关系是什么?
答案 0 :(得分:98)
正如BraveNewCurrency所提到的,主机操作系统和容器之间的唯一关系是内核。
这是docker和'常规'虚拟机之间的主要区别之一,没有开销,一切都直接在主机内核中进行。
这就是为什么你只能在容器中运行基于Linux的发行版/二进制文件。如果你想运行其他东西,这并非不可能,但你需要在容器内部进行某种虚拟化(qemu,kvm等)
Docker管理作为文件系统表示的图像。您可以安装任何Linux发行版或只是放置二进制文件。
实际上,为了方便示例,我们经常依赖基础图像,但您也可以在没有任何分发库/二进制文件的情况下创建图像。这样你就会拥有一个非常小巧但功能齐全的容器。
关于发行版还有一点:由于内核仍然是主机的内核,因此您不会拥有该发行版提供的任何特定内核模块/补丁。
答案 1 :(得分:23)
从字面上看,他们唯一的共同点就是内核。他们的整个世界(文件系统)都在docker容器中。
答案 2 :(得分:1)
还有另一个考虑因素-即使两个内核都相同,但如果主机操作系统不支持Docker,例如RHEL 6,也会出现问题:https://access.redhat.com/solutions/1378023
因此,即使映像是Linux映像,也无法在RHEL 6上启动一个容器。