Docker命名空间在内核级别

如何用主机的1,17等pid区分docker容器的pid 1,17等等,当我们在docker容器内创build一个新的进程时,发生了什么样的内核变化?

Docker中的进程如何在主机中看到?

如何区分docker1,17等docker集装箱与主机1,17

默认情况下,这些PID位于不同的名称空间中。
由于问题10080和--pid host ,容器pid可以留在主机的pid命名空间。
还有问题10163:“允许共享PID名称空间” ,请求一个--pid=container:id

当我们在Docker容器中创build一个新的进程时,发生了什么样的内核变化

注意并更新2016年5月: 问题10163和--pid=container:id现在由docker 1.12的PR 22481parsing,允许join另一个容器的PID名称空间。


内核级别没有改变,只使用:

  • cgroups或对照组。 隔离运行应用程序的一个关键是让他们只使用你想要的资源。
  • 联合文件系统提供容器的构build块