服务器上跑了 一堆docker,docker里面很多java服务。网络使用的host模式,docker ps无法找到对应的端口。现在找到方法可以方便找对应的docker容器。
步骤1:查找使用特定端口的进程ID
lsof -i :8080
步骤2:查找该进程所在的Docker容器ID
docker ps -q | while read container_id; do
if [ $(docker inspect --format '{{.State.Pid}}' $container_id) -eq 12345 ]; then
echo $container_id
fi
done
这个脚本会遍历所有正在运行的容器,并检查每个容器的PID。如果容器的PID与步骤1中的PID匹配,就会输出容器ID。
步骤3:根据容器ID查找容器名
有了容器ID后,我们可以使用以下命令查找容器名:
假设找到的容器ID是 abcdef123456
:
docker inspect --format '{{.Name}}' abcdef123456
这个是一句话命令
docker inspect -f '{{.State.Pid}} {{.ID}}' $(docker ps -a -q) | grep 35512
没有评论:
发表评论