【问题标题】:Why don't docker use the host OS for all purposes为什么 docker 不将主机操作系统用于所有目的
【发布时间】:2015-06-07 07:01:43
【问题描述】:

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

【问题讨论】:

  • docker 的优势之一是您可以从 Ubuntu 主机(或其他任何东西)运行基于 Centos/Debian/fedora/busybox... 的容器

标签: linux docker containers linux-containers


【解决方案1】:

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

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

  • 接近虚拟机的体验,因为用户喜欢使用他们最喜欢的 Linux 分布
  • 基于分发的预配置库。让您可以立即运行应用,同时注意所有基于分发的依赖项。
  • 在同一主机上运行多个发行版的灵活性(伟大的开发/测试沙盒!)
  • 与其他容器的更大隔离,因为每个映像都是自给自足的,不必与其他人共享文件系统

【讨论】:

  • 请注意,您可以有一个带有 no 操作系统的图像,只是一个二进制文件(如 swarm 图像或其他图像)。图像的 Os 部分用于您的应用程序可能具有的依赖项(对库、二进制文件等)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多