Linux Namespace
1. 有哪些类型
Mount
: 隔离文件系统挂载点UTS
: 隔离主机名和域名信息IPC
: 隔离进程间通信PID
: 隔离进程的IDNetwork
: 隔离网络资源User
: 隔离用户和用户组的ID
查看特定进程的namespace 信息:
/proc/$pid/ns/
查看特定进程mount space 信息
cat /proc/$pid/mountinfo
namespace 主要有3个系统调用:
- clone()– 实现线程的系统调用,用来创建一个新的进程,并可以通过上述参数达到隔离。
- unshare() – 使某进程脱离某个namespace,并且会自动创建一个新的namespace
- setns() – 把某进程加入到某个namespace
ref:
https://zhuanlan.zhihu.com/p/73248894
2. 有什么用?
最典型的应用就是比如docker 这种容器技术
Ref:
https://www.cnblogs.com/wtzbk/p/15077185.html
3. 常见的使用场景有哪些?
加入想在container 内部使用某个网络相关的command, 但是发现没有这个command, 怎么办?马上可能想到安装一个吧,但是加入container 又是read-only 的怎么办?其实一个比较快的办法是用在host上找到 net space, 然后用 host 上的对应命令
e.g.
ip netns exec {namespace} ifconfig
转载请注明出处 http://www.cnblogs.com/mashuai-191/