为什么docker能够运行不同的linux发行版?
我们可以使用docker来拉取不同的图像。 和这些图像是不同的Linux分布。 但无论运行哪个Linux发行版docker,docker都可以像在虚拟机中一样运行这些不同的linux发行版。
我知道码头使用aufs来控制不同的读写访问级别。 所以它可以在主机上重新使用一些文件。 但是,当我的主机运行arch linux
时,docker如何运行apt-get
在容器中? 图像是否包含apt-get
二进制文件? 但不同的Linux发行版有不同的库和软件版本。 即使配置文件也不同。Docker如何在arch linux中“运行”Ubuntu?
因为内核是一样的。
所有Linux发行版的共同点,以及为什么它们被称为linux,是因为它们都使用linux内核。
容器与主机共享相同的内核,这就是为什么您可以在Ubuntu主机上运行Arch映像的原因。
这里是Linux的概述。
内核是处理与硬件通信的操作系统的一部分。 这是操作系统的最低级别。 以下是内核的主要功能列表:
所以当你使用一个容器时,你只能访问主机的内核,因为它是唯一与硬件通信的部分,只要你的操作系统使用良好的syscall
,你就可以在你的容器中运行任何Linux发行版。 (这是您无法在容器中使用Windows的原因:它不使用相同的syscall
)。
是的,图像必须包含apt-get才能运行apt-get。 每个图像可以安装不同的软件。 所以你可以安装一个Arch docker镜像或一个ubuntu镜像。 您可以使用以下命令搜索公共图像。
docker search <your search term>
所以要搜索你可以使用的Ubuntu映像
docker search ubuntu
我建议通过Docker教程,仔细阅读左侧的所有说明和链接。
链接地址: http://www.djcxy.com/p/2993.html上一篇: Why docker has ability to run different linux distribution?
下一篇: *args and **kwargs?