/proc 目录
/proc
是内核提供的一个虚拟文件结构,因为其中的数据并不存储在磁盘上,每次程序访问,内核再生成对应的数据。
进程信息 /proc/PID
对于系统中的每个进程,/proc
目录下都以该进程的pid
为名称,建立了对应的目录。其中子目录包含了关于该进程的很多信息。任何进程可以通过/proc/self
的方式来访问自己所在的目录。
除了/proc/PID
,/proc
下的很多东西直接和系统相关。
/proc/PID/fd
该目录下存放着进程打开的所有文件,以软链接的形式展现,每个软链接的名称是文件在进程中对应的fd
号,其内容是对应文件的描述。
/proc/PID/root
映射到该进程视角下的根目录/
,一般来说,都是当前机器文件系统的根目录。在有容器存在的环境下,情况会很比较有趣。
容器在宿主机上就是一个进程,通过一些技术手段实现了资源限制&隔离,因此,容器视角下的文件系统是完全不同于宿主机的。容器视角下的根目录,与真实宿主机上的根目录并不相同。
宿主机进程视角下的/root
,有很多文件夹和文件。
容器进程视角下的/root
,只有一个可见文件。
从宿主机的视角,通过/proc
是可以直接访问到容器内部的文件系统的,如果直接cd
进去,就可以直接创建文件,从宿主机的其它地方复制文件进去了。