Ошибки при удалении docker-контейнера в статусе «dead»
Симптомы
Не удаляется docker-контейнер в статусе «dead».
Причины
Драйвер файловой системы считает, что docker-контейнер занят процессом.
Решение
Универсальный способ
Удалить все docker-контейнеры в статусе «dead» можно с помощью следующей команды:
docker rm $(docker ps --all -q -f status=dead)При работе с драйвером devicemapper
При попытке удаления контейнера в Docker с драйвером devicemapper возникает следующая ошибка:
Error response from daemon: Cannot destroy container <имя_контейнера>: Driver devicemapper failed to remove root filesystem <id_директории_контейнера>: Device is BusyВ этом случае достаточно демонтировать директорию контейнера в каталоге /var/lib/docker/devicemapper/mnt/ с помощью команды:
umount /var/lib/docker/devicemapper/mnt/<id_директории_контейнера>При работе с драйвером overlay
При попытке удаления контейнера в Docker с драйвером overlay2 возникает следующая ошибка:
Error response from daemon: driver "overlay2" failed to remove root filesystem for : remove /var/lib/docker/overlay/<id_директории_контейнера>/merged: device or resource busyВ данной ситуации необходимо найти процесс, который использует директорию /var/lib/docker/overlay/<id_директории_контейнера>/merged с помощью команды:
grep <id_директории_контейнера> /proc/*/mountinfoВ выводе в начале строки найдите PID процессов, которые используют директорию контейнера:
/proc/1010/mountinfo:546 30 0:56 / /var/lib/docker/overlay2/<id_директории_контейнера>/merged ...
/proc/1515/mountinfo:546 30 0:56 / /var/lib/docker/overlay2/<id_директории_контейнера>/merged ...
/proc/2020/mountinfo:546 30 0:56 / /var/lib/docker/overlay2/<id_директории_контейнера>/merged ...Проверьте какими службами заняты процессы с помощью команды:
ps -p <pid_процесса> -o comm=Если среди имен будут служба не относящаяся к Docker, она может быть причиной ошибки: если возможно, остановите эту службу, удалите проблемный контейнер, а затем запустите службу.
Если с директорией контейнера связано большое количество процессов, попробуйте универсальный способ или перезагрузите сервер.