Осиротевший Докер смонтировал объемы хоста?

Я просто осмотрел свою/var/lib/docker/volumes папку и обнаружил, что это является разрывным с папками, названными как Докер UUID, каждый из которых содержат config.json файл с содержанием вроде

{"ID":"UUID","Path":"/path/to/mounted/volume","IsBindMount":true,"Writable":true}

где

/path/to/mounted/volume

путь к папке на хосте, который был смонтирован на контейнере докера с переключателем-v в какой-то момент. У меня есть такие папки, относящиеся ко времени запуска моих экспериментов с Докером, т.е. приблизительно 3 недели назад.

Рассматриваемые контейнеры были остановлены и докер rm'ed давным-давно, таким образом, я не вижу, что те записи не проходят свой срок годности. Это вызывает вопрос - левые по, я вижу ошибку, или нужно вручную отбросить такие записи от/var/lib/docker/volumes?

62
задан 7 January 2015 в 08:13

3 ответа

Для Докера 1.9 и существует собственный путь:

Список все осиротевшие объемы с

$ docker volume ls -qf dangling=true

Устраняют всех их с

$ docker volume rm $(docker volume ls -qf dangling=true)

138
ответ дан 31 October 2019 в 13:20

Из руководства пользователя Докера:

при удалении контейнеров, которые монтируют объемы, включая начальную букву dbdata контейнер или последующие контейнеры db1 и db2, объемы не будут удалены. Для удаления объема из диска необходимо явно назвать комнату докера-v против последнего контейнера со ссылкой на объем. Это позволяет Вам обновлять, или эффективно перемещать объемы данных между контейнерами. - источник

Это - намеренное поведение для предотвращения случайной потери данных. Можно использовать инструмент как объемы очистки докера для вычищения неиспользованных объемов.

28
ответ дан 31 October 2019 в 13:20

Для Докера 1.13 + и ce/ee 17 + номера выпуска, используйте volume prune команда

docker volume prune

, В отличие от этого, эти dangling=true запрос, это не удалит "удаленные" основанные на драйвере объемы.

9
ответ дан 31 October 2019 в 13:20

Другие вопросы по тегам:

Похожие вопросы: