Как аккуратно завершить зависшую службу Docker?

Как аккуратно завершить зависшую службу Docker?

Работает с Centos7 с ядром 3.10, docker 19.03.12.

В конце концов один из образов Docker заполнился и заполнил все /var/монтирование на 100%, что привело к сбою как службы Docker, так и работающих контейнеров.

Теперь осталось 2 процесса-зомби, которых я не могу убить (с помощью kill -9или killall:

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: «На устройстве не осталось места».

Связанный контент