Как удалить volumes docker?
Есть ненужный именованный том old_data от тестовой базы, копия уже сделана. Хочу удалить именно его, остальные тома оставить, но Docker пишет что он используется.
Пока нет лидеров с лучшими ответами.
Ваш вопрос
Есть ненужный именованный том old_data от тестовой базы, копия уже сделана. Хочу удалить именно его, остальные тома оставить, но Docker пишет что он используется.
Сначала найдите использующие том контейнеры: docker ps -a --filter volume=old_data. Учитываются и остановленные экземпляры. После сохранения данных удалите только ненужный связанный контейнер, затем выполните docker volume rm old_data. Содержимое тома исчезнет. Общая очистка всех томов для этой задачи не нужна, а повторный запуск Compose может создать новый пустой том.
Для удаления одного известного тома используйте docker volume rm old_data, но сначала разберите сообщение о том, что он используется. Посмотрите docker ps -a --filter volume=old_data: остановленный контейнер тоже может сохранять подключение и мешать удалению. Найденный контейнер нужно оценивать по его назначению, а не только по статусу Exited.
Например, если old_data остался от единственной тестовой базы, проверьте её копию, убедитесь, что этот экземпляр больше не нужен, и удалите именно связанный контейнер. После этого повторите docker volume rm old_data. Не удаляйте соседние контейнеры и тома только потому, что их имена похожи или они относятся к той же папке проекта.
Удаление тома уничтожает его данные. Это не операция отключения точки монтирования и не освобождение только пустой оболочки с названием. Копия должна находиться вне удаляемого тома и подходить для восстановления базы. Наличие образа PostgreSQL или файла compose.yaml не означает наличие копии таблиц.
Если данные по-прежнему описаны в Compose-конфигурации, следующий запуск может создать новый том. Он будет пустым, хотя имя окажется знакомым. Это часто воспринимают как исчезновение базы после переустановки, поэтому различайте старое содержимое и новый объект с тем же названием.
После удаления проверьте список томов нужного Engine. Если CLI использует удалённый context, операция относится к удалённому хранилищу. Для точечного удаления не требуется volume prune или compose down с удалением всех томов проекта. Такие команды имеют другую область действия и не помогают точнее выбрать old_data.
4o
Найти связь
Проверьте docker volume inspect old_data и docker ps -a --filter volume=old_data. Том может удерживаться даже остановленным контейнером, поэтому одного списка работающих экземпляров недостаточно.
Удалить выбранный том
Если связанный контейнер больше не нужен, сначала сохраните необходимые данные и удалите именно его. Затем выполните docker volume rm old_data. Команда удаляет содержимое тома, а не только отсоединяет каталог от приложения.
Проверить результат Посмотрите список томов и убедитесь, что исчезло нужное имя. Не заменяйте точечное удаление общей очисткой с широкими флагами. Для проекта Compose учитывайте, что при следующем запуске он может создать пустой том с тем же именем, если хранилище по-прежнему описано в конфигурации.
Пока нет премиум-вопросов в подборке
Не нашли то, что искали?
Задайте свой вопрос
Ответить на вопрос