Eva*_*oll 3 chroot systemd systemd-nspawn
是否systemd-nspawn
在 a 内部做了特殊处理,或者chroot
它只是提供了一种不同的运行方法chroot
+ 适合 , 的 ro--bind
安装proc
。sys
文档说,
与 chroot(1) 类似,但更强大,因为它完全虚拟化文件系统层次结构、进程树、各种 IPC 子系统以及主机和域名
我不确定其中任何一个是如何定义的,
虚拟化文件系统层次结构
这不就是chroot
改变root的作用吗?
以及进程树
我不确定这意味着什么。
各种IPC子系统
有哪些子系统?有人能准确地告诉我这意味着什么吗?
主机名和域名
我也不确定这意味着什么?这不就是/proc/sys/kernel/domainname
,而且/proc/sys/kernel/hostname
我用过chroot
和mount --bind
脚本。看起来这更令人信服,但我对任何附加功能都很模糊。这给我带来了什么新的东西?
它使用挂载命名空间。它的功能更强大,chroot
因为您可以在命名空间下挂载和卸载文件系统,并且这些文件系统将从外部或其他挂载命名空间中隐藏。
查看这篇关于 Linux 命名空间(特别是挂载命名空间)的文章,以了解它们的用途。
这意味着您将在命名空间内获得新的 PID 号。命名空间内的 PID 1 可能是其外部的 PID 12001,其内部的 PID 40 可能是其外部的 PID 13987,依此类推。特别是,并非所有 PID 都映射到命名空间内部,因此如果您使用诸如内部之类的命令ps -ef
,您将只能看到该命名空间中的进程,而看不到来自外部或其他 pid 命名空间的进程。
上面提到的文章还很好地概述了 PID 命名空间。
共享内存、信号量...命令显示的东西ipcs
。再说一次,我指出的那篇文章对此有更多内容。(如果您还没有听说过 SysV IPC 或该ipcs
命令,您可能可以忽略这一点。)
这实际上是 UTS 命名空间,该文章再次提供了更多详细信息。
它虚拟化uname
命令返回的内容(您可以查看uname -a
容器内部)。此外,hostname
还有domainname
命令。是的,你提到的两个/proc
文件也是如此。
简而言之,这告诉您systemd-nspawn
正在使用 Linux 命名空间来为您提供容器隔离。这也是其他容器技术(例如 Docker)所采用的。
归档时间: |
|
查看次数: |
3401 次 |
最近记录: |