docker容器如何使用主机操作系统?

在每个docker教程中,docker的主要优点之一是docker容器使用主机操作系统。 但是,如果这是真的,我不明白为什么我需要在图像中包含操作系统。 例如这里是centOS的形象。 我明白,如果我想在容器中运行centOS,我必须拉这个镜像,但主机操作系统在哪里? 如果有人能指点我一些链接来阅读,因为我找不到合适的链接是最好的。

Docker使用的主机实际上只是操作系统的内核

你在Docker容器中包含的不是实际的操作系统(即内核),而是组成特定分发的所有文件,比如Ubuntu或者Fedora,或者其他什么…

这也是为什么你不能在Windows上运行Linux容器,反之亦然(没有虚拟机),因为Linux软件当然不能与Windows内核一起工作,Windows软件不能与Linux内核一起工作。

因此,运行在给定主机上的所有Docker容器共享主机操作系统的内核。

它实际上共享内核和所需的库来从主机操作系统启动映像。 这就是为什么这些图像真的很小,不像传统的ISO文件。 它主要利用联合文件系统,cgroups和命名空间来pipe理图像和容器。

你可以快速阅读下面 –
https://kjanshair.github.io/2017/07/04/Docker-Containers-vs-System-Processes/ Docker与普通虚拟机有什么不同?