为什么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?