在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。
答案 0 :(得分:0)
Och。使用cut
来过滤一行中的部分。
grep NSpid /proc/24918/status | cut -f3
在示例中将给出695
。