场景
某docker的宿主机很卡,显示负载很高,可能是由某个容器导致的,但是通过宿主机的top看资源使用没有明显的异常,不能很好区分,其他的异常表现为显示有zombie进程,那么现在查出进程号后如何知道宿主机的此进程号对应的哪个容器呢?
解决
其实对于正常情况来说查进程号是能够看到容器不少信息的,如果没有大量重复容器的情况下基本上能够通过这些信息定位到相关的容器。但是我们遇到的情况是,第一有大量重复的容器,正常情况查询宿主机进程显示的内容都是一样的,第二此进程已经zombie,显示的内容为僵尸进程内容,所以需要使用以下命令来查询此进程号对应的容器:
docker inspect -f '{{.State.Pid}} {{.Id}}' $(docker ps -q) | grep <Pid>