当前位置: 首页 > 知识库问答 >
问题:

为什么docker能够运行不同的linux发行版?[关闭]

彭仲卿
2023-03-14

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

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

共有2个答案

夹谷沛
2023-03-14

是的,这些映像必须包含apt-get,以便您能够运行apt-get。每个映像都可以在里面安装不同的软件。例如,您可以安装Arch docker映像或ubuntu映像。您可以使用以下命令搜索公共映像。

docker search <your search term>

因此,要搜索ubuntu图像,您可以使用

docker search ubuntu

我建议您继续阅读docker教程,并仔细阅读左侧的所有说明和链接。

居京
2023-03-14

因为内核是一样的。

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

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

下面是Linux的概述。

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

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

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

 类似资料:
  • 问题内容: 我们可以使用docker拉取不同的图像。而且这些映像是不同的linux发行版。但是,无论运行在哪个linux distro docker上,docker都可以像在虚拟机中一样运行这些不同的linux发行版。 我知道docker使用aufs来控制不同的读写访问级别。因此它可以重用主机上的某些文件。但是当主机运行时,docker如何在容器中运行?图像是否包含二进制文件?但是,不同的Linu

  • docker如何在Debian主机上运行,或者在容器中运行OpenSUSE?它使用不同的内核,具有不同的模块。另外,老版本的Debian使用了老版本的内核,那么如何在3.10+版本的内核上运行它呢?旧的内核只有旧的内置功能,旧的发行版如何管理新的功能?这里面有什么“诀窍”?

  • 问题内容: 我在MacOSX上使用Docker(带有Boot2Docker)。 我可以从Docker Hub运行映像。 但是,当我尝试像这样运行自己的映像之一时: 要么 要么 我得到: 我猜它找不到在容器中执行的bash二进制文件,但是为什么呢? 基本图像是 谢谢你的帮助。 阿什莉 问题答案: 您的图片基于不带bash外壳的busybox。它的确有外壳。 所以这不起作用: 但这确实是: 由于您的入

  • 我使用http://openjdk.java.net/projects/code-tools/jmh/的JMH基准框架对我的代码进行基准测试。我的理解是,JMH在基准测试期间多次分叉JVM,以便丢弃由JVM在执行期间执行的实时(JIT)分析建立的任何概要文件。 我理解为什么这在某些情况下是有用的,比如下面(逐字复制自http://Java-performance . info/jmh/): 默认情

  • cross-env node_env=development node_modules/webpack/bin/webpack.js--progress--hide-modules--config=node_modules/laravel-mix/setup/webpack.config.js /users/xwu33/src/bioproc/node_modules/webpack-cli/bi