docker 容器根据 pid 查找该进程所属的容器

有时候我们可能会遇到Docker容器占用资源过高的情况,但我们不知道具体是哪个容器导致的。这时我们可以通过查找进程来找到具体的容器。以下是一些常用的命令:

1.通过top查看内存占用高的进程

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                         
 2962 root      20   0 1040288  96708  19944 S   0.3  2.5 234:48.26 node 

2.通过pid查看具体容器

# docker ps -q | xargs docker inspect --format '{{.Id}} {{.State.Pid}} {{.Name}}'|grep 2962
没有结果输出

3.查找进程父ID

# ps -ef | grep -v grep | grep 2962 | awk '{print $3}'
2370

4.再次通过pid查看具体容器

# docker ps -q | xargs docker inspect --format '{{.Id}} {{.State.Pid}} {{.Name}}'|grep 2370
a7ee14c010259f0aabxxx 2370 /xxx

5.补充,根据容器 container_id 查看pid

docker inspect -f '{{.State.Pid}}' <container_id>

参考链接

https://blog.csdn.net/p243679396/article/details/120080919