/proc 目录

/proc是内核提供的一个虚拟文件结构,因为其中的数据并不存储在磁盘上,每次程序访问,内核再生成对应的数据。

进程信息 /proc/PID

对于系统中的每个进程,/proc目录下都以该进程的pid为名称,建立了对应的目录。其中子目录包含了关于该进程的很多信息。任何进程可以通过/proc/self的方式来访问自己所在的目录。
image.png
除了/proc/PID/proc下的很多东西直接和系统相关。
image.png

/proc/PID/fd

该目录下存放着进程打开的所有文件,以软链接的形式展现,每个软链接的名称是文件在进程中对应的fd号,其内容是对应文件的描述。
image.png

/proc/PID/root

映射到该进程视角下的根目录/,一般来说,都是当前机器文件系统的根目录。在有容器存在的环境下,情况会很比较有趣。
容器在宿主机上就是一个进程,通过一些技术手段实现了资源限制&隔离,因此,容器视角下的文件系统是完全不同于宿主机的。容器视角下的根目录,与真实宿主机上的根目录并不相同。
宿主机进程视角下的/root,有很多文件夹和文件。
image.png
容器进程视角下的/root,只有一个可见文件。
image.png
从宿主机的视角,通过/proc是可以直接访问到容器内部的文件系统的,如果直接cd进去,就可以直接创建文件,从宿主机的其它地方复制文件进去了。