Linux 通过系统PID获取内部docker PID
在docker容器中使用命令后,我可以使用获取PID。问题在于该ID不是容器的本地ID,而是系统PID。所以我会得到类似于Linux 通过系统PID获取内部docker PID,linux,docker,pid,Linux,Docker,Pid,在docker容器中使用命令后,我可以使用获取PID。问题在于该ID不是容器的本地ID,而是系统PID。所以我会得到类似于22620的东西,而docker容器中的PID是695 我知道docker使用进程名称空间来隔离其进程。因此,我尝试使用 cat/proc/22620/status | grep NSpid . 这确实给了我想要的PID: NSpid:22620695 但是我需要解析这个字符串来获得PID。 是否有适当的方法获取docker容器使用的PID 附言 我需要此进程ID来终止由其他
22620
的东西,而docker容器中的PID是695
我知道docker使用进程名称空间来隔离其进程。因此,我尝试使用
cat/proc/22620/status | grep NSpid
. 这确实给了我想要的PID:
NSpid:22620695
但是我需要解析这个字符串来获得PID。
是否有适当的方法获取docker容器使用的PID
附言
我需要此进程ID来终止由其他exec调用启动的进程。我无法终止系统进程,因为它归root所有,并且我无法使用sudo。Och。使用
cut
从行中筛选节
grep NSpid /proc/24918/status | cut -f3
将从示例中给出
695
。By是否有适当的方法获取docker容器使用的PID?
您的确切意思是什么?Docker命令?@k.wahome I mane,无需解析字符串。最好使用docker API为什么不在容器内杀死它docker exec sh-c'kill$(pgrep NSpid)
?@KamilCuk这正是我需要NSpid的原因。问题更多的是关于任何正式的docker风格。或专用系统命令,而不是解析字符串。