首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Docker Container中运行不同的Linux操作系统?

在Docker Container中运行不同的Linux操作系统?
EN

Stack Overflow用户
提问于 2015-10-14 04:35:07
回答 2查看 24.5K关注 0票数 73

我一直在努力学习Docker,有一件事让我感到困惑,那就是不同风格的Linux (对于主机操作系统)实际上是如何在Docker容器中运行的。

如果我们假设我的Docker主机正在运行RedHat,并且我从Ubuntu镜像启动了一个容器,那么以下是真的吗?

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

我知道Docker容器共享主机操作系统使用的相同内核,并且Docker的一个基本点是它使用底层操作系统提高了容器的效率。因此,我对启动从不同Linux版本而不是主机创建的Container时实际发生的事情感到有点困惑。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-14 16:25:23

我认为之前的这篇文章可能会帮助你更好地理解它- Docker container isolation, does it care about underlying Linux OS?

问题的症结在于,如果主机操作系统是RedHat,那么它就是RedHat内核,它将被您在Docker容器中运行的任何版本的Linux所使用。示例中的Ubuntu。

这归结于理解Linux 和Linux 之间的区别。您将不会在Docker Container中运行完整的Ubuntu操作系统,而是Ubuntu的镜像。

就你的问题而言,想一想:

OS =内核+文件系统/库

镜像=文件系统/库

在Docker容器中运行的Ubuntu镜像只是Ubuntu文件系统/库--它不包含Ubuntu内核。这在一定程度上解释了你从Docker容器中获得的效率,它利用了底层主机的内核(以及其他东西)。

票数 82
EN

Stack Overflow用户

发布于 2018-02-26 03:38:49

在Docker容器中运行的Ubuntu镜像运行在该容器的用户空间中。此映像可以对RedHat主机OS内核进行内核系统调用(作为将某些用户操作的控制权从用户空间转移到内核空间的一部分)。由于核心内核是通用技术,因此即使从Ubuntu用户空间代码调用到Redhat内核代码,系统调用也应该是兼容的。这种兼容性使得跨容器共享内核成为可能,这些容器可能都具有不同的基础操作系统映像。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33112137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档