回答
谢谢@Alex过去和@Stanislav的帮助。但我没有得到完整的答案。我结合他们。
总之,我已经得到了下一个。
首先
pstree -sg <PID>
PID是从命令top
在输出我得到家长的PID为systemd父进程的PID号。这个PID是码头集装箱的PID。
我执行后
docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Name}}' | grep "^%PID%"
其中%PID%是该父PID。
因此,我有码头的CONTAINER ID。
这就是我想要的
我想你需要的是这样的:
docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Name}}' | grep "%PID%"
你可以找到所有的父母对这个过程:
pstree -sg <PID>
此链将包含容器
你应该能够对每个正在运行的容器使用exec
检查pid是否存在。当然,同一个进程ID可以存在于多个容器中。这里是一个小bash脚本,寻找基于每个容器所提供的PID正在运行的进程:
#!/bin/bash
for container in $(docker ps -q); do
status=`docker exec $container ls /proc/$1 2>/dev/null`
if [ ! -z "$status" ]; then
name=`docker ps --filter ID=$container --format "{{.Names}}"`
echo "PID: $1 found in $container ($name)"
break;
fi
done;
例如:
./find-process.sh 1
所以你总是在容器中的docker exec' 7dd276808aec?这看起来很虚假。 – user2915097
@ user2915097 - 糟糕,我会更新。当然,你需要执行每个正在运行的容器并检查是否存在'/ proc/
- 1. 无法进入到码头工人的容器中,kubernetes部署
- 2. 未找到或已验证码容器包含内部元素
- 3. 父进程如何找到导致其子进程死亡的进程的PID?
- 4. 连接来自外部客户端进程的kubernetes内作为码头容器运行的点火服务器
- 5. 带头部容器的无头码头主机
- 6. 如何在进程完成执行后看到/ proc/[pid]/status的内容?
- 7. 在码头云容器内部运行cronjob或任务
- 8. 通过PID查找进程名称
- 9. 创建空的码头容器并将其部署到其中
- 10. 有没有办法找到socket对等进程的pid?
- 11. 以编程方式查找码头容器ip/port
- 12. 找到了pid文件,但没有找到匹配的进程。停止中止
- 13. 码头:容器找不到域在专用网络
- 14. 从容器访问码头远程API
- 15. 内部容器
- 16. 如何提交具有共享卷内容的码头容器
- 17. 无法连接到mysql码头容器
- 18. 使用无花果和码头机器进行远程部署
- 19. 管道码头运行容器ID到码头执行
- 20. 我如何numactl成员内部的Docker容器进程?
- 21. 如何用wmic找到进程pid并用taskkill杀死它
- 22. linux - 获取进程的pid
- 23. 获得子进程的PID
- 24. 查找具有已知pid的进程的'.text'部分的范围
- 25. 错误:验证码容器找不到或已经包含内部元素
- 26. 从浏览器访问码头容器的码头图像
- 27. 在码头工人容器
- 28. 为静态内容配置maven货物插件码头容器
- 29. 如何正确地与容器内的码头客户端进行交互
- 30. 亚马逊EC2容器服务 - 是否将任务部署为码头集装箱内的码头集装箱?
您应该将此标记为接受的答案=) – Cyclonecode