gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 12:35:24 33 4
gpt4 key购买 nike

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

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

  • 从逻辑上讲,如果 Ubuntu 镜像占用空间约为 550MB,那么 Docker 守护程序是否会实际下载(从镜像注册表)值(value) 550MB 的 Ubuntu 镜像以创建容器?
  • 在容器中运行的 Ubuntu 实例与我手动下载并安装相同版本的情况本质上没有区别吗?

我知道 Docker 容器共享主机操作系统使用的相同内核,并且 Docker 的基本点之一是它使用底层操作系统的容器效率增益。因此,当您启动从不同于主机的 Linux 版本创建的容器时,我对实际发生的情况感到有些困惑。

最佳答案

我认为上一篇文章可能会帮助您进一步理解它 - Docker container isolation, does it care about underlying Linux OS? .

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

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

出于您的问题的目的,请考虑:-

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

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

关于docker - 在 Docker 容器中运行不同的 Linux 操作系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33112137/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com