这个问题似乎与 a specific programming problem, a software algorithm, or software tools primarily used by programmers 无关.如果您认为该问题将成为 another Stack Exchange site 上的主题,您可以发表评论,说明在哪里可以回答问题。
关闭 8 年前。
我们可以使用 docker 来拉取不同的图像。而且这些镜像是不同的linux发行版。 但无论 docker 运行在哪个 linux 发行版上,docker 都可以像在虚拟机中一样运行这些不同的 linux 发行版。
我知道 docker 使用 aufs控制不同的读写访问级别。所以它可以重用主机上的一些文件。但是当我的主机运行 arch linux
时,docker 如何在容器中运行 apt-get
呢?图像是否包含 apt-get
二进制文件?但是不同的 linux 发行版有不同的库和软件版本。连配置文件都不一样。docker如何在arch linux中“运行”ubuntu?
最佳答案
因为内核是一样的。
所有 linux 发行版的共同点,以及为什么它们被称为 linux,是因为它们都使用 linux 内核。
容器与主机共享相同的内核,这就是您可以在 Ubuntu 主机上运行 Arch 镜像的原因。
这里是 Linux 的概述。
内核是操作系统的一部分,负责处理与硬件的通信。它是操作系统的最低级别。以下是内核的主要功能列表:
因此,当您使用容器时,您只能访问主机的内核,因为它是与硬件通信的唯一部分,只要您的操作系统使用良好的 syscall
,您就可以在容器内运行任何 linux 发行版。 (这就是你不能在容器中使用 Windows 的原因:它没有使用相同的 syscall
)。
https://stackoverflow.com/questions/25444099/