Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker中的共享内核是什么意思?_Docker_Virtualization - Fatal编程技术网

Docker中的共享内核是什么意思?

Docker中的共享内核是什么意思?,docker,virtualization,Docker,Virtualization,在Docker中,来宾操作系统与主机操作系统共享相同的内核 有人能详细说明一下吗 让我看看centos操作系统,它有一些内核版本,当我们拉ubuntu映像时,它有不同的内核,那么我们怎么能说它们有相同的内核呢 当我们拉ubuntu的形象,然后它有不同的内核 不,它没有:它没有内核部分:它依赖于主机的内核(运行docker引擎的内核)进行所有 如“”所述: 最初Docker是作为Linux容器(LXC)之上的抽象层构建的。LXC本身只是Linux包含特性的API。 从Docker 0.9开始,LX

在Docker中,来宾操作系统与主机操作系统共享相同的内核

有人能详细说明一下吗

让我看看centos操作系统,它有一些内核版本,当我们拉ubuntu映像时,它有不同的内核,那么我们怎么能说它们有相同的内核呢

当我们拉ubuntu的形象,然后它有不同的内核

不,它没有:它没有内核部分:它依赖于主机的内核(运行docker引擎的内核)进行所有

如“”所述:

最初Docker是作为Linux容器(LXC)之上的抽象层构建的。LXC本身只是Linux包含特性的API。
从Docker 0.9开始,LXC不再是默认的,已经被一个用Go编写的自定义库(libcontainer)所取代。总的来说,libcontainer的优势是在各种Linux发行版中与内核的接口更加一致。唯一的问题是它需要Linux 3.8及更高版本

有关详细信息,请参阅“”。
亦包括:

容器是操作系统虚拟化的产物。它们提供了一个轻量级虚拟环境,将一组进程和资源(如内存、CPU、磁盘等)与主机和任何其他容器进行分组和隔离。
隔离保证容器内的任何进程都看不到容器外的任何进程或资源

OS容器是共享主机操作系统内核但提供用户空间隔离的虚拟环境

如“”中所述,即使每个发行版都有自己的内核配置,内核也可以跨发行版共享


如果您需要更多的隔离,请考虑<强> <强>(),容器沙箱运行时侧重于安全性、效率和易用性。(2018年)。
参见架构:

gVisor拦截应用程序系统调用并充当来宾内核,无需通过虚拟化硬件进行转换

gVisor可以被认为是一个合并的客户机内核和VMM,或者是一个基于类固醇的seccomp。
此体系结构允许it提供灵活的资源占用(即基于线程和内存映射的资源占用,而不是固定的来宾物理资源),同时还降低了虚拟化的固定成本。
然而,这是以降低应用程序兼容性和增加每个系统调用开销为代价的


Docker之前使用的是LinuX容器(LXC),但后来改用了runC(以前称为libcontainer),它与主机在同一操作系统中运行。这允许它共享大量主机操作系统资源。它还使用分层文件系统,如AuFS。它还为您管理网络

AuFS是一个分层文件系统,所以您可以有一个只读部分和一个写部分,并将它们合并在一起。因此,您可以将操作系统的公共部分设置为只读,在所有容器之间共享,然后为每个容器提供自己的装载以供写入


假设您有一个大小为1GB的容器映像。如果你想使用一个完整的虚拟机,你需要有1GB乘以你想要的虚拟机数量。使用LXC和AuFS,您可以共享1GB的大部分空间,如果您有1000个容器,您可能仍然只有略多于1GB的空间用于容器操作系统,假设它们都运行相同的操作系统映像

冯,你能详细说明一下它是如何依赖于主机内核的吗,如果它是自己拉的话kernel@gaurav它不是在拉自己的内核:它依赖于已经存在的内核。Voc,但我们知道centos,ubuntu有不同的内核,那么它怎么能依赖于主机内核,ubuntu如何使用centoskernel@gaurav你正在绘制的ubuntu映像不包含内核,只包含一个类似ubuntu的文件系统。@VonC我不知道还有什么更令人印象深刻-你对评论的耐心或你回答的质量:)!不管怎样,干得好!