1. 基本概念
a. namespace定义了进程task的作用域,其实现方式是在进程中添加了namespace属性,以限制其活动范围.
b. namespace对主机来说是可见的,但主机对namespace不可见的,namespace之间是互相隔离的
c. docker通过namespace,实现容器之间的隔离
d. 目前主要支持的namespace:
IPC:隔离System V IPC和POSIX消息队列。
Network:隔离网络资源。
Mount:隔离文件系统挂载点。
PID:隔离进程ID。
UTS:隔离主机名和域名。
User:隔离用户ID和组ID
查看进程所属namespace:
root@wan:~# ll /proc/1107/ns
总用量 0
dr-x--x--x 2 xrdp xrdp 0 Apr 25 20:48 ./
dr-xr-xr-x 9 xrdp xrdp 0 Apr 25 20:40 ../
lrwxrwxrwx 1 xrdp xrdp 0 Apr 25 20:48 cgroup -> 'cgroup:[4026531835]'
lrwxrwxrwx 1 xrdp xrdp 0 Apr 25 20:48 ipc -> 'ipc:[4026531839]'
lrwxrwxrwx 1 xrdp xrdp 0 Apr 25 20:48 mnt -> 'mnt:[4026531840]'
lrwxrwxrwx 1 xrdp xrdp 0 Apr 25 20:48 net -> 'net:[4026532008]'
lrwxrwxrwx 1 xrdp xrdp 0 Apr 25 20:48 pid -> 'pid:[4026531836]'
lrwxrwxrwx 1 xrdp xrdp 0 Apr 25 20:48 pid_for_children -> 'pid:[4026531836]'
lrwxrwxrwx 1 xrdp xrdp 0 Apr 25 20:48 user -> 'user:[4026531837]'
lrwxrwxrwx 1 xrdp xrdp 0 Apr 25 20:48 uts -> 'uts:[4026531838]'
2. namespace相关命令
lsns
nsenter
unshare