Как использовать `docker volume prune`? (`docker volume prune` удаляет все тома, даже когда контейнер работает) - PullRequest
0 голосов
/ 08 ноября 2019

В документации докера говорится следующее:

docker volume prune === Удалить все неиспользуемые локальные тома

Чтобы проверить это, я установилКонтейнер MongoDb с официальным последним изображением из Docker Hub. При этом были созданы 2 тома за кулисами, которые, вероятно, необходимы контейнеру для хранения данных.

При запуске docker volume ls сейчас я вижу два тома со случайными именами.

Допустим, у меня будет несколько контейнеров с томами, использующими случайные имена. Теперь было бы трудно узнать, какие из них все еще используются, и поэтому я ожидал, что docker volume prune поможет здесь.

Поэтому я выполнил команду, ожидая, что docker volume prune ничего не удалит, так как мой контейнери работает с MongoDb. Но на самом деле произошло то, что все мои тома были удалены. После этого мой контейнер отключился и не мог быть перезапущен.

Я пытался воссоздать это несколько раз, и каждый раз, даже когда мой контейнер работает, команда просто удаляет все тома.

Любой может объяснить, чтоповедение?

Обновление:

Следующая команда с идентификатором контейнера моего изображения MongoDB показывает мне 2 тома:

docker inspect -f '{{ .Mounts }}' *CONTAINER_ID*

Итак, из моегопонимающий докер знает, что эти тома и контейнер принадлежат друг другу.

Когда я прошу докер показать мне висячие тома, он снова показывает мне те же тома:

docker volume ls --filter dangling=true

Так что, когда онимне кажется, что команда prune удаляет их. Но я явно использую объемы с моим контейнером, так что мне это не ясно.

...