在Docker和Host之间处理任务结构

在Docker和主机进程中,进程任务结构是不同的,除了主机之外,任何特定的模块在Docker中都是不同的?

由于处理在内核中被称为“ task_struct ”的结构,所以该结构在容器中是相同的。

容器是基于对主机内核的系统调用 ,并且任何与内核相关的结构都直接来自内核。

请参阅“ 架构容器:为什么了解用户空间与内核空间有关 ”

一个典型的程序通过类似于下图的抽象层访问内核中的资源:

https://rhelblog.files.wordpress.com/2015/07/user-space-vs-kernel-space-system-calls-gears.png?w=300

内核提供了安全性,硬件和内部数据结构的抽象。 open()系统调用通常用于获取文件句柄

注意在下面的图中, bash使getpid()调用请求自己的进程标识。
另外请注意, cat命令请求通过文件open()调用访问/etc/hosts

https://rhelblog.files.wordpress.com/2015/07/user-space-vs-kernel-space-basic-system-calls.png?w=584&h=219