在 Docker 容器中运行不同的 Linux 操作系统?

2024-07-04

我一直在尝试学习 Docker,但令我困惑的一件事是,不同风格的 Linux(对于主机操作系统)实际上是如何在 Docker 容器中运行的。

如果我们假设我的 Docker 主机正在运行 RedHat 并且我从 Ubuntu 映像启动一个容器,那么以下情况是否正确?:

  • 从逻辑上讲,如果 Ubuntu 映像占用空间约为 550MB,那么 Docker 守护进程实际上会(从映像注册表)下载 550MB 的 Ubuntu 映像来创建容器吗?
  • 在容器中运行的 Ubuntu 实例本质上与我手动下载并安装相同版本没有什么不同吗?

我知道 Docker 容器共享主机操作系统使用的相同内核,并且 Docker 的基本点之一是使用底层操作系统提高容器的效率。因此,当您启动从与主机不同的 Linux 版本创建的容器时,实际会发生什么,我有点困惑。


我认为上一篇文章可能会帮助您更多地理解它 -Docker容器隔离,它关心底层Linux操作系统吗? https://stackoverflow.com/questions/29911415/docker-container-isolation-does-it-care-about-underlying-linux-os?lq=1.

问题的关键在于,如果主机操作系统是 RedHat,那么您在 Docker 容器中运行的任何 Linux 版本都将使用 RedHat 内核。在你的例子中是Ubuntu。

这归结为理解 Linux 之间的区别OS和一个LinuxImage。您不会在 Docker 容器内运行完整的 Ubuntu 操作系统,而是运行 Ubuntu 的映像。

为了你的问题,请思考:-

OS= 内核 + 文件系统/库
Image= 文件系统/库

在 Docker 容器内运行的 Ubuntu 映像只是 Ubuntu 文件系统/库 - 它不会包含 Ubuntu 内核。这在一定程度上解释了 Docker 容器利用底层主机的内核(除其他外)所获得的效率。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Docker 容器中运行不同的 Linux 操作系统? 的相关文章

随机推荐

  • 构建失败:程序类型已存在:com.facebook.ads.Ad

    我尝试在 Android Studio 中构建一个模块 它似乎可以在设备上运行 但是当我尝试构建 APK 时 出现错误 Program type already present com facebook ads Ad 这是完整的日志 org
  • 界面生成器中 UIView 的边框颜色不起作用?

    我正在尝试通过 IB 设置视图的图层属性 除了边框的颜色之外 一切正常 属性layer borderColor 我记得一年前遇到过这个问题 最终我以编程方式解决了这个问题 而且 我仍然可以以编程方式执行此操作 但我很好奇为什么layer b
  • TypeScript .d.ts 语法 - 导出和声明

    我需要帮助尝试了解创建 d ts 文件的正确方法 让我困惑的是有些人使用这种语法 lib a d ts namespace My Foo Bar interface IFoo interface IBar vs lib b d ts dec
  • laravel 5 vue.js csrf 令牌

    我已经花了一段时间让这个 csrf 令牌与 vue js 示例一起使用 但它一直说我没有令牌 我尝试过各种变化 底部 不是头部 而是身体末端之前 html div section conten div
  • 版本升级后异常

    使用 Optaplanner v7 11 0 Final 的项目上出现分数持久性问题 我升级到最新版本 v7 25 0 Final 但出现以下异常 The externalObject Etat super DbObject id 11 l
  • 分组依据,在 pandas 中

    select df id count distinct airports as num from df group by df id having count distinct airports gt 3 我正在尝试在 Python pan
  • 在 javascript/jquery 中从 JSON 中删除元素

    我在 javascript 中从 JSON 对象删除数据时遇到问题 我正在动态创建此 JSON 并且删除也将动态进行 下面是我的 JSON 和我所处的情况 brands 51 2046 53 67 64 现在 我必须从中删除 53 我正在使
  • 如何获取 PostgreSQL 中字符串中正则表达式匹配的位置?

    我有一个包含书名的表 我想选择标题与正则表达式匹配的书籍 并按标题中正则表达式匹配的位置对结果进行排序 单字搜索很容易 例如 TABLE book id title 1 The Sun 2 The Dead Sun 3 Sun Kissed
  • 检查Column中是否存在Cell值,然后获取NEXT Cell的值

    检查列中是否存在单元格值后 我需要获取匹配单元格旁边的单元格的值 例如 我检查中的值是否cell A1存在于column B 并假设它匹配B5 那么我想要的值是cell C5 为了解决前半个问题 我这样做了 IF ISERROR MATCH
  • 如何构建我的 PHP 项目?

    我即将开始另一个大型 PHP 项目 这次 我打算让项目文件夹变得整洁 所以我有几个关于保持我的项目干净和干燥的问题 如何区分 PHP 源文件和浏览器应访问的 PHP 文件 换句话说 我如何清楚哪些 PHP 文件提供输出 哪些提供函数或类定义
  • 在 Python 中访问 Firefox 3 cookie

    我正在尝试制作一个 python 脚本 该脚本将在 Firefox 中使用 cookie 访问网站 如果 cookielib MozillaCookieJar 支持 Firefox 3 它就会工作 有没有办法在 python 中访问 Fir
  • GO 语句破坏了 .NET 中的 SQL 执行

    我有一个非常简单的 C 命令 shell 应用程序 它执行 SQL Server 生成的 SQL 脚本来编写模式和数据脚本 它在 GO 声明中爆炸了 错误信息 GO 附近的语法不正确 这是完整的 sql 脚本 Object Table gy
  • android finish() 方法不会从内存中清除应用程序

    我有一个活动 我调用 finish 方法 但该活动没有从内存中清除 调用 finish 后 我看到 onDestroy 方法已成功执行 并且我清除了其中的所有变量和内容 应该从内存中清除它还是android的工作方式 据我了解 活动的生命周
  • 如何在MIPS汇编编程中打印数字的前几位? [复制]

    这个问题在这里已经有答案了 我是 MIPS Assembly 编程的初学者 我想知道在读入数字后如何打印数字的第一个数字 data number 1 word text read in first number li v0 5 syscal
  • 为什么Scala 支持影子变量? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Python 与 Hive 的连接

    我安装了 Hortonworks Hive ODBC 驱动程序并在数据源中创建了连接 我测试了它并且成功了 我安装了PyODBC并编写了以下代码 import os sys pyodbc con pyodbc connect DSN MyC
  • Python Selenium Webdriver - 代理身份验证

    我想将 Selenium Webdriver 与需要用户身份验证的代理一起使用 这可能吗 这就是我到目前为止所拥有的 但我不知道在哪里放置凭据 user pass proxy port from selenium import webdri
  • .NET 中是否有任何集合可以防止空条目?

    我特别考虑的是履行一套合同的集合 但我认为这个问题可以适用于任何类型 NET 框架中是否存在可以防止空条目的集合 我想要的具体行为是这样的 var set new HashSet bool added set Add null Consol
  • 使用 insertUI 方法创建不同的闪亮小部件

    我有下面的闪亮应用程序 用户可以在数据框中选择一个或多个列名称 name lt c John Jack Bill value1 lt c 2 4 6 add lt c SDF GHK FGH value2 lt c 3 4 5 dt lt
  • 在 Docker 容器中运行不同的 Linux 操作系统?

    我一直在尝试学习 Docker 但令我困惑的一件事是 不同风格的 Linux 对于主机操作系统 实际上是如何在 Docker 容器中运行的 如果我们假设我的 Docker 主机正在运行 RedHat 并且我从 Ubuntu 映像启动一个容器