我一直在阅读 docker,并且我了解到与 VM 不同,docker 使用主机操作系统的内核。为什么要求基础映像必须是操作系统。为什么 docker 不能使用主机操作系统的资源(例如:文件系统)并使用主机操作系统支持的隔离?(我假设主机操作系统提供了隔离机制)
问问题
200 次
1 回答
1
这取决于您如何定义操作系统。Docker 映像不是完整的操作系统(与 VM 不同)。他们没有自己的内核。这意味着没有安装特定的内核模块(外部硬件的设备驱动程序等),因为主机操作系统已经拥有它们。
镜像只是流行的 Linux 发行版的文件系统克隆(镜像中的二进制文件是为目标架构构建的)。可能有多种原因,我会尝试在这里放一些:
- 接近虚拟机的体验,因为用户喜欢使用他们最喜欢的 Linux 发行版
- 基于分发的预配置库。让您立即运行应用程序,同时注意所有基于分发的依赖项。
- 在同一主机上运行多个发行版的灵活性(伟大的开发/测试沙盒!)
- 与其他容器的更大隔离,因为每个图像都是自给自足的,并且不必与其他容器共享文件系统
于 2015-05-25T09:46:58.810 回答