【发布时间】:2017-12-12 19:14:42
【问题描述】:
在每个 docker 教程中,docker 的主要优点之一是 docker 容器使用主机操作系统。但如果这是真的,我不明白为什么我需要在图像中包含操作系统。例如here 是centOS 的镜像。我知道如果我想在容器中运行 centOS,我必须提取这个图像,但是主机操作系统来自哪里?最好有人能指出一些链接来阅读相关内容,因为我找不到合适的链接。
【问题讨论】:
标签: docker
在每个 docker 教程中,docker 的主要优点之一是 docker 容器使用主机操作系统。但如果这是真的,我不明白为什么我需要在图像中包含操作系统。例如here 是centOS 的镜像。我知道如果我想在容器中运行 centOS,我必须提取这个图像,但是主机操作系统来自哪里?最好有人能指出一些链接来阅读相关内容,因为我找不到合适的链接。
【问题讨论】:
标签: docker
Docker对宿主机使用的其实只是操作系统的kernel。
您在 Docker 容器中包含的不是实际的操作系统(即内核),而是构成特定发行版的所有文件,例如 Ubuntu 或 Fedora 或其他任何东西……
这也是你不能在 Windows 上运行 Linux 容器的原因,反之亦然(没有 VM),因为 Linux 软件当然不能与 Windows 内核一起工作,而 Windows 软件也不能与Linux 内核。
因此,在给定主机上运行的所有 Docker 容器共享主机操作系统的内核。
【讨论】:
它实际上共享内核和从主机操作系统启动映像所需的库。这就是为什么这些图像非常小并且不像传统的 ISO 文件。它主要利用联合文件系统、cgroups 和命名空间来管理镜像和容器。
您可以快速阅读以下内容 -
https://kjanshair.github.io/2017/07/04/Docker-Containers-vs-System-Processes/
How is Docker different from a normal virtual machine?
【讨论】: