如何彻底终止卡住的 Docker 服务?

如何彻底终止卡住的 Docker 服务?

使用带有 3.10 内核的 Centos7、docker 19.03.12。

最终,其中一个 Docker 镜像已满,并将整个/var/挂载写入 100%,导致 Docker 服务和正在运行的容器崩溃。

现在剩下 2 个我无法杀死的僵尸进程(使用kill -9killall

ps axjf | grep docker
    1 30215 30215 30215 ?           -1 Ds       0   0:00 [docker-entrypoi]
    1 32063 32063 32063 ?           -1 Zsl      0   0:00 [dockerd] <defunct>

与此同时,/var/log/messages我得到了:

kernel: XFS (dm-8): Failing async write on buffer block 0xb78170. Retrying async write.
kernel: XFS (dm-8): metadata I/O error: block 0xb78170 ("xfs_buf_iodone_callback_error") error 28 numblks 8

似乎某些 IO 仍在尝试写入一些数据。这似乎在无限循环中重复,我不知道如何停止它。

du -sh并且ls -al在检查文件时很快挂起/var/lib/docker

此外,service docker stop/start还会挂起;top报告非常高的负载/等待时间(大约23为 4 核机器)。

我的问题:在不重新启动机器的情况下,最好的方法是彻底停止xfs写入、终止僵尸进程并重新启动服务?

答案1

释放一些磁盘空间。

您发布的内核消息报告的错误是 28,“设备上没有剩余空间”。

相关内容