我们可以使用docker拉取不同的图像。而且这些映像是不同的linux发行版。但是,无论运行在哪个linux distro docker上,docker都可以像在虚拟机中一样运行这些不同的linux发行版。
我知道docker使用aufs来控制不同的读写访问级别。因此它可以重用主机上的某些文件。但是apt-get当主机运行时,docker如何在容器中运行archlinux?图像是否包含apt-get二进制文件?但是,不同的Linux发行版具有不同的库和软件版本。即使配置文件也不同。docker如何在arch linux中“运行” ubuntu?
apt-get
archlinux
因为内核是相同的。
所有Linux发行版的共同点以及为什么将它们称为linux,是因为它们都使用linux内核。
容器与主机共享同一内核,这就是为什么您可以在Ubuntu主机上运行Arch映像的原因。
这是Linux的概述。
内核是操作系统的一部分,用于处理与硬件的通信。这是操作系统的最低级别。以下是内核的主要功能列表:
因此,当您使用容器时,您只能访问主机的内核,因为它是与硬件通信的唯一部分,只要您的操作系统使用good syscall,您就可以在容器内运行任何Linux发行版。(这是您不能在容器内使用Windows的原因:它没有使用相同的syscall)。
syscall