当前位置: 首页 > 面试题库 >

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

宁修永
2023-03-14
问题内容

一直在尝试学习Docker,让我感到困惑的是,在Docker容器中实际上如何运行与主机操作系统不同的Linux。

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

  • 从逻辑上讲,如果Ubuntu映像占用空间约为550MB,那么Doc​​ker Daemon是否会从映像注册表中实际下载(价值550MB)Ubuntu映像以创建Container?
  • 容器中运行的Ubuntu实例与我手动下载并安装相同版本的实例基本没有区别吗?

我知道Docker容器与主机OS使用相同的内核,并且Docker的基本要点之一是它使用基础OS提升了容器的效率。因此,当您启动从与主机不同的Linux版本创建的Container时,我对实际发生的情况有些困惑。


问题答案:

我认为上一篇文章可能会帮助您进一步了解-Docker容器隔离,它是否关心基础Linux操作系统?。

问题的关键在于,如果主机操作系统是RedHat,则它是RedHat内核,无论您在Docker容器中运行的任何Linux构建都将使用该内核。在您的示例中为Ubuntu。

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

就您的问题而言,请考虑:-

操作系统 =内核+文件系统/库
映像 =文件系统/库

在Docker容器中运行的Ubuntu映像只是Ubuntu文件系统/库-它不包含Ubuntu内核。这部分解释了您从Docker容器中获得的效率,该容器利用了底层Host的内核(除其他外)。



 类似资料:
  • 我的 Windows 机器上运行了一个 docker 容器,它是使用官方文档中提供的 docker-compose 文件的改编版本构建的。 这工作得很好,但是我想将python脚本(我的任务)从已挂载的文件夹中移动到它们自己的docker容器中。 为了测试这一点,我创建了一个简单的“Hello World!”示例-脚本: 它与以下简单的docker文件一起 我可以用< code > docker

  • 本文向大家介绍在win和Linux系统中python命令行运行的不同,包括了在win和Linux系统中python命令行运行的不同的使用技巧和注意事项,需要的朋友参考一下 今天,在完成一个小的python习题,习题的主要内容是读取一个帮助模块,并保存到本地文件。 知道是用pydoc进行模块的读取,但是在windows系统下,调用os模块之后,结果总是为空。 核心语句: 此语句在Linux下可以正常

  • Debug.DockerFile 运行命令 正在连接RabbitMQ

  • 我最近开始学习Docker,知道它只需要一个简单的命令就可以在容器中创建和运行Ubuntu。 我还知道docker-machine使用VirtualBox以非常得心应手的方式创建Linux OS。 那么它们之间有什么区别呢?

  • 问题内容: 我试图在docker容器中运行cron作业 但对我没有用 我的容器只有cron.daily和cron.weekly文件 crontab,cron.d,cron.hourly …在我的容器中不存在 crontab -e也无法正常工作 我的容器使用/ bin / bash运行 问题答案: 这是我运行我的cron容器之一的方法。 Dockerfile: crontab.txt entry.s

  • 问题内容: 我正在尝试在调用shell脚本的docker容器中运行cronjob。 昨天我一直在网上搜索和堆栈溢出,但是我找不到真正可行的解决方案。 我怎样才能做到这一点? 编辑: 我已经创建了一个(带注释的)github存储库,上面有一个工作的docker cron容器,该容器以给定的时间间隔调用shell脚本。 问题答案: 您可以将crontab复制到映像中,以使从该映像启动的容器运行该作业。