3

据我所知,我可以使用“克隆”来创建进程和命名空间,但是以这种方式创建的命名空间没有名称。比如我创建了一个参数为:CLONE_NEWNS 的网络命名空间,但是在命令“ip netns list”中,没有命名空间列表,因为创建的命名空间没有名字。但是我可以使用命令“ip netns add xxx”来创建一个名称为“xxx”的命名空间。

我想知道如何使用系统调用“克隆”创建一个名称空间。

4

1 回答 1

6

/var/run/netns/<name>从to创建一个符号链接/proc/<pid>/ns/net,其中<pid>是创建的进程的 PID,CLONE_NEWNS并且<name>是您要用来引用网络命名空间的名称。

请注意,该ip link set netns命令将接受 PID 或名称,并且该nsenter命令也可以通过 PID 访问命名空间,因此您实际上可能不需要为网络命名空间分配名称。

于 2015-05-11T03:40:39.447 回答