通过系统PID获取内部docker PID

时间:2018-08-25 23:11:26

标签: linux docker pid

在docker容器中使用exec命令后,我可以使用exec inspect获取PID。问题在于此ID并不是容器本地的,而是系统PID。因此,当Docker容器内的PID为22620时,我会得到类似695的信息。

我知道docker使用进程名称空间来隔离其进程。所以我试图用 cat /proc/22620/status | grep NSpid 。这确实为我提供了我正在寻找的PID:

  

NSpid: 22620 695

但是我需要解析此字符串以获取PID。 有没有适当的方法来获取docker容器使用的PID?

PS。

我需要此进程ID来杀死由其他exec调用启动的进程。我无法杀死系统进程,因为它是root拥有的,并且不能使用sudo。

1 个答案:

答案 0 :(得分:0)

Och。使用cut来过滤一行中的部分。

grep NSpid /proc/24918/status | cut -f3

在示例中将给出695