Docker进阶与实战
上QQ阅读APP看书,第一时间看更新

2.4 Namespace介绍

2.4.1 Namespace是什么

Namespace是将内核的全局资源做封装,使得每个Namespace都有一份独立的资源,因此不同的进程在各自的Namespace内对同一种资源的使用不会互相干扰。

这样的解释可能不清楚,举个例子,执行sethostname这个系统调用时,可以改变系统的主机名,这个主机名就是一个内核的全局资源。内核通过实现UTS Namespace,可以将不同的进程分隔在不同的UTS Namespace中,在某个Namespace修改主机名时,另一个Namespace的主机名还是保持不变。

目前Linux内核总共实现了6种Namespace:

❏ IPC:隔离System V IPC和POSIX消息队列。

❏ Network:隔离网络资源。

❏ Mount:隔离文件系统挂载点。

❏ PID:隔离进程ID。

❏ UTS:隔离主机名和域名。

❏ User:隔离用户ID和组ID。