Удаление томов с использованием фильтра по меткам (labels)
На этом последнем этапе мы научимся удалять тома на основе меток (labels). Это мощный способ выборочно удалять тома, соответствующие определенным критериям, не затрагивая другие тома.
Сначала создадим несколько новых томов с разными метками, чтобы иметь что фильтровать.
docker volume create --label env=dev dev_volume
docker volume create --label env=prod prod_volume
docker volume create --label type=data data_volume
Мы создали три новых тома: dev_volume
с меткой env=dev
, prod_volume
с меткой env=prod
и data_volume
с меткой type=data
.
Выведем список томов, чтобы увидеть только что созданные.
docker volume ls
В списке должны быть dev_volume
, prod_volume
и data_volume
.
Теперь удалим только те тома, которые имеют метку env=dev
. Мы можем использовать флаг --filter
с ключом label
.
docker volume prune --filter label=env=dev
Docker попросит подтверждения. Введите y
и нажмите Enter.
В выводе будет показано, что dev_volume
был удален.
Повторим список томов, чтобы убедиться, что был удален только dev_volume
.
docker volume ls
Теперь должны остаться prod_volume
и data_volume
.
Мы также можем фильтровать по отсутствующим меткам. Например, удалим тома, которые не имеют метку type=data
.
docker volume prune --filter label!=type=data
Docker попросит подтверждения. Введите y
и нажмите Enter.
В выводе будет показано, что prod_volume
был удален.
Выведем список томов последний раз, чтобы увидеть, что осталось.
docker volume ls
Теперь должен остаться только data_volume
.
Это показывает, как можно использовать фильтры по меткам для выборочного удаления томов в соответствии с вашими потребностями.