为什么Docker不会出于所有目的使用主机操作系统

时间:2015-04-02 10:45:41

标签: linux docker containers linux-containers

我一直在阅读docker,我已经明白,与VM不同,docker使用主机操作系统的内核。为什么要求基本映像必须是操作系统。为什么docker不能使用来自主机操作系统的资源(例如:文件系统)并使用主机操作系统支持的隔离? (我假设主机操作系统提供隔离机制)

1 个答案:

答案 0 :(得分:1)

这取决于您如何定义操作系统。 Docker镜像不是完整操作系统(与VM不同)。他们没有自己的内核。这意味着没有安装特定的内核模块(外部硬件的设备驱动程序等),因为主机操作系统已经安装了它们。

图像只是流行的Linux发行版的文件系统克隆(图像中的二进制文件是为目标arch构建的offcourse)。可能有多种原因,我会尝试在这里放一些:

  • 近乎虚拟机的体验,因为用户喜欢使用自己喜欢的Linux 分配
  • 基于分发的预配置库。允许您立即运行应用程序,并且所有基于分发的依赖关系都得到了关注。
  • 在同一主机上运行多个发行版的灵活性(Great dev / test sandboxing!)
  • 与其他容器的隔离更大,因为每个图像都是自给自足的,并且不必与其他人共享文件系统