Как очистить докер
Я только что заметил, что на моем ноутбуке не хватает места на диске. Docker использует довольно много, как обнаружил mate-disk-usage-analyzer
:
![Enter image description here]()
Папка docker/aufs/diff
содержит 152 папки, заканчивающиеся на -removing
.
Я уже выполнил следующие команды для очистки
Kill all running containers:
# docker kill $(docker ps -q)
Delete all stopped containers
# docker rm $(docker ps -a -q)
Delete all images
# docker rmi $(docker images -q)
Remove unused data
# docker system prune
And some more
# docker system prune -af
Но снимок экрана был сделан после того, как я выполнил эти команды.
Что такое docker/aufs/diff
, почему он занимает столько места и как мне его убирать?
У меня Docker версии 17.06.1-ce, сборка 874a737. Это произошло после очистки, так что это определенно проблема.
Ответы
Ответ 1
Ниже приводится радикальное решение. ЭТО УДАЛИТЬ ВСЕ ВАШЕ ЗАДАНИЕ ДОКЕРА. ВКЛЮЧАЯ ОБЪЕМЫ.
$ sudo su
# service docker stop
# cd /var/lib/docker
# rm -rf *
# service docker start
Подробнее см. https://github.com/moby/moby/issues/22207#issuecomment-295754078
Он может не быть /var/lib/docker
Расположение докеров может быть другим в вашем случае. Вы можете использовать анализатор использования диска (например, mate-disk-usage-analyzer
), чтобы найти папки, которым требуется большая часть пространства.
См. Где хранятся изображения Docker на главной машине?
Ответ 2
Этот каталог - это где уровни корневых файлов контейнера хранятся при использовании драйвера хранения AUFS (по умолчанию, если загружаются модули ядра AUFS).
Если у вас есть группа *-removing
dirs, это вызвано неудачной попыткой удаления. Это может произойти по разным причинам, наиболее распространенным является отказ unmount
из-за device or resource busy
.
До Docker 17.06, если вы использовали docker rm -f
, чтобы удалить контейнер, все метаданные контейнера будут удалены, даже если в процессе очистки контейнера была некоторая ошибка (например, не удалось удалить слой rootfs).
В 17.06 он больше не удалит метаданные контейнера и вместо этого отметит контейнер с статусом Dead
, чтобы вы могли попытаться удалить его снова.
Вы можете безопасно удалить эти каталоги, но я сначала остановлю докер, а затем удалю, а затем вернусь к докере.