容器隔离技术:命名空间与根目录变更的深入探索
1. 进程信息与根目录变更的关联
在查看运行进程信息时, ps 命令通常会从 /proc 目录获取数据。若要让 ps 仅返回新命名空间内的进程信息,就需要一个独立的 /proc 目录,这意味着要变更根目录。
在容器中,根目录会在创建时被更改,从而使容器只能看到主机文件系统的一个子集。在 Linux 里,可以使用 chroot 命令来变更根目录。该命令不仅会更改目录,还会执行指定的命令,若未指定命令,则默认运行 shell。
例如,创建一个新目录并尝试使用 chroot 进入:
vagrant@myhost:~$ mkdir new_root
vagrant@myhost:~$ sudo chroot new_root
chroot: failed to run command ‘/bin/bash’: No such file or directory
vagrant@myhost:~$ sudo chroot new_root ls
chroot: failed to run command ‘ls’: No such file or directory
这一尝试失败的原因是新根目录下没有 bin 目录,无法运行 /bin/bash 或 ls 命令。在实
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



