《Docker容器与容器云》看书笔记(一) Linux Namesapce

前言

https://www.amazon.cn/dp/B014ETH1IG
最近买了《Docker 容器与容器云》,看了之后,收获不少。就来写一下笔记吧。

关于Linux Namespace

我们可以在/proc/[pid]/ns 这里查看一个进程所属得namespace。
这个方法仅限于Linux,请不要拿着Mac来实验。

Namespace 现在有6钟

名称 作用
Mount 挂载点隔离
UTS 主机名、域名
Network 网络
IPC 信号量、消息队列、共享内存
PID 进程编号
User 用户、用户组

我们可以使用Clone这个函数来创建一个子进程,并且把这个进程分配到新的namespace

1
int clone(int (*child_func)(void *), void* child_stack, int flags, void args*)

为什么在新的PID Namespace 还是可以看到父Namespace的进程?

因为/proc 还是父Namespace的
可以使用 mount -t proc proc /proc 来重新挂载proc
如果你在进行上一步操作的时候,没有进行Mount Namespace的隔离,那么在回到父Namespace的时候需要
mount -t proc proc /proc 来重新挂载父Namespace的proc