docker 假死 僵尸状态

某日在调试superset docker容器里面的一个程序后,容器突然假死

docker ps 显示容器状态正常,但是对外服务已经不可用
docker stats 没有反应,这个有点奇怪单个容器也能影响全部?
docker stop CONTAINER_ID 也没有任何反应
docker restart CONTAINER_ID 也没有任何反应
docker exec -it --user root CONTAINER_ID /bin/bash 也没有任何反应

求助朋友后,朋友说是不是僵尸进程
然后用top命令查看,发现有 zombie 3个进程

linux 进程状态
Linux Process Status:
R (task_running) : 可执行状态
S (task_interruptible): 可中断的睡眠状态
D (task_uninterruptible): 不可中断的睡眠状态
T (task_stopped or task_traced): 暂停状态或跟踪状态
Z (task_dead - exit_zombie): 退出状态,进程成为僵尸进程
X (task_dead - exit_dead): 退出状态,进程即将被销毁

继续使用命令查看具体信息

ps -ef | grep "defunct" 

图片描述
跟进PPID查看父进程发现是刚好是对应CONTAINER_ID的进程

ps -ef | grep 82248 

图片描述

最后kill -9 82248 后 zombie 也变成0

一切恢复正常

参考文章
https://www.oschina.net/trans...
https://blog.csdn.net/qq_3959...

你可能感兴趣的:(docker 假死 僵尸状态)