进程谈容器
1、障眼法
#创建进程的系统调用为我们创建一个新的进程,并且返回它的进程号 pid。
int pid = clone(main_function, stack_size, SIGCHLD, NULL);
- 容器只是一种特殊的进程
通过指定的参数,可以看到一个全新的进程空间,这里面的进程PID就是1。实际上在宿主机上的进程ID还是真实的值。
#参数CLONE_NEWPID
int pid = clone(main_function, stack_size, CLONE_NEWPID | SIGCHLD, NULL);
- 其他的namespace
而除了我们刚刚用到的 PID Namespace,Linux 操作系统还提供了 Mount、UTS、IPC、Network 和 User 这些 Namespace,用来对各种不同的进程上下文进行“障眼法”操作。