如何通过PID定位是哪个容器

日常排查集群故障问题时会从宿主机上定位到进程PID但是需要定位到具体哪个容器的问题就步骤多了些 这边文章把方法总结一下

  • 首先定位容器目录
pwdx PID
# pwdx 681978
# 681978: /
  • 具体查询思路
    通过docker ps -q命令,获取所有的容器id,再通过xargs管道,将这些容器id转交给docker inspect命令进行处理,通过-f '{{.State.Pid}} {{.Config.Hostname}}'参数,只打印出来容器当前的pid和容器id
docker ps -q | xargs docker inspect -f '{{.State.Pid}} {{.Config.Hostname}}' | grep PID
## 回显
# PID container_ID
## 查询容器
# docker ps | grep container_ID