一尘不染

为什么Docker能够运行不同的Linux发行版?

linux

我们可以使用docker拉取不同的图像。而且这些映像是不同的linux发行版。但是,无论运行在哪个linux distro
docker上,docker都可以像在虚拟机中一样运行这些不同的linux发行版。

我知道docker使用aufs来控制不同的读写访问级别。因此它可以重用主机上的某些文件。但是apt-get当主机运行时,docker如何在容器中运行archlinux?图像是否包含apt-get二进制文件?但是,不同的Linux发行版具有不同的库和软件版本。即使配置文件也不同。docker如何在arch linux中“运行” ubuntu?


阅读 577

收藏
2020-06-03

共1个答案

一尘不染

因为内核是相同的。

所有Linux发行版的共同点以及为什么将它们称为linux,是因为它们都使用linux内核。

容器与主机共享同一内核,这就是为什么您可以在Ubuntu主机上运行Arch映像的原因。

这是Linux的概述。

内核是操作系统的一部分,用于处理与硬件的通信。这是操作系统的最低级别。以下是内核的主要功能列表:

  • 内存管理
  • 网络管理
  • 设备驱动
  • 文件管理
  • 流程管理

因此,当您使用容器时,您只能访问主机的内核,因为它是与硬件通信的唯一部分,只要您的操作系统使用good
syscall,您就可以在容器内运行任何Linux发行版。(这是您不能在容器内使用Windows的原因:它没有使用相同的syscall)。

2020-06-03