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" 

《docker 假死 僵尸状态》
跟进PPID查看父进程发现是刚好是对应CONTAINER_ID的进程

ps -ef | grep 82248 

《docker 假死 僵尸状态》

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

一切恢复正常

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

    原文作者:s8fh26h3
    原文地址: https://segmentfault.com/a/1190000018042864
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞