Фильтрация томов по статусу "висячего" (dangling)
На этом этапе мы научимся фильтровать Docker-тома (Docker volumes) по их статусу "висячего" (dangling). Висящий том - это том, который в данный момент не подключен ни к одному контейнеру. Эти тома могут бесполезно расходовать дисковое пространство.
Для фильтрации висящих томов мы используем флаг --filter dangling=true
.
Сначала создадим контейнер и подключим один из наших томов к нему. Мы будем использовать образ ubuntu
. Если у вас нет образа ubuntu
локально, Docker автоматически загрузит его.
docker run -d --name mycontainer -v myvolume:/app ubuntu sleep 3600
Эта команда запускает контейнер с именем mycontainer
в отсоединенном режиме (-d
), монтирует том myvolume
в каталог /app
внутри контейнера (-v myvolume:/app
), использует образ ubuntu
и держит контейнер запущенным на протяжении часа (sleep 3600
).
Теперь выведем список всех томов еще раз:
docker volume ls
Вы увидите как myvolume
, так и another_volume
. Т том myvolume
в данный момент используется контейнером mycontainer
. Т том another_volume
не подключен ни к какому контейнеру, поэтому он является висящим томом.
Теперь отфильтруем висящие тома:
docker volume ls --filter dangling=true
В выводе вы должны увидеть another_volume
, так как он не подключен ни к какому запущенному контейнеру.
Для просмотра томов, которые не являются висящими (то есть подключены к контейнеру), вы можете использовать --filter dangling=false
.
docker volume ls --filter dangling=false
В этом случае должен быть показан том myvolume
.
Наконец, остановим и удалим созданный нами контейнер.
docker stop mycontainer
docker rm mycontainer
Теперь, если вы снова выведете список висящих томов:
docker volume ls --filter dangling=true
Теперь должны появиться оба тома myvolume
и another_volume
как висящие, так как myvolume
больше не подключен к контейнеру.