2015-04-02 102 views
0

我一直在看Docker,并且我已经了解到,与VM不同的是,docker使用主机操作系统的内核。为什么要求基本映像必须是OS。为什么docker无法使用主机操作系统的资源(如:文件系统)并使用主机操作系统支持的隔离? (我假设主机操作系统提供隔离机制)为什么Docker不能用于所有目的的主机操作系统

+1

一Docker的优势在于,你可以从Ubuntu主机(或其他任何地方)运行Centos/Debian/fedora/busybox ...基于容器 – user2915097 2015-04-02 13:17:28

回答

1

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

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

  • 近VM般的体验,因为用户喜欢用自己喜欢的Linux发行 基于分布
  • 预配置库。允许您立即运行应用程序,并注意所有基于分布式的依赖关系。
  • 灵活性同一台主机上运行多个分布的(大开发/测试沙盒!)
  • 从其他容器中,作为每个图像更大的隔离是自给自足,而不必与他人共享文件系统
+1

请注意,您可以使用** no ** OS映像,只是一个二进制文件(如群集图像或其他)。图像的* Os *部分存在于您的应用程序可能具有的依赖项中(对库,二进制等)。 – 2015-05-25 09:49:30

相关问题