Проблемы с Docker
Проблема
Не удаляется dead контейнер.
Решение
Способ 1
Если вы получили сообщение похожее на это:
Error response from daemon: Cannot destroy container elated_wozniak: Driver devicemapper failed to remove root filesystem 656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3: Device is Busy |
---|
То запустите следующую команду:
$ umount /var/lib/docker/devicemapper/mnt/656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3
Способ 2
Вы также можете удалить контейнеры dead с помощью этой команды:
$ docker rm $(docker ps --all -q -f status=dead)
Способ 3
Ошибка:
Error response from daemon: driver "overlay" failed to remove root filesystem for |
---|
- Проверьте, какие другие процессы также используют ресурсы docker:
$ grep docker /proc/*/mountinfo
- Найдите процесс, который выводит что-то похожее на это, с числом после /proc/ равным pid:
/proc/10001/mountinfo:179... /proc/10002/mountinfo:149... /proc/12345/mountinfo:159 149 0:36 / /var/lib/docker/overlay/...
- Проверьте имя процесса выше pid:
$ ps -p 10001 -o comm= dockerd $ ps -p 10002 -o comm= docker-containe $ ps -p 12345 -o comm= nginx <<<-- This is suspicious!!!
- Есть предположение, что nginx с pid 12345 также использует /var/lib/docker/overlay/..., поэтому не стоит удалять связанный контейнер. Иначе это может вызвать ошибку "device or resource busy".
- Остановите nginx:
$ service nginx stop
- Удалите контейнер:
$ docker rm <container-id>
- Запустите процесс: Если процессов много, то лучше перезагрузить систему.
$ service nginx start