docker system df
docker system df -vdocker volume prune -fdocker volume prune -adocker system prune
docker system prune -aНачинать стоит с docker system df: он покажет, что съело место — образы, тома или кеш сборки. Чистить наугад бессмысленно, потому что в разных случаях помогают разные команды, а на машине разработчика чаще всего лидирует именно кеш сборки.
Главное различие, проверено на Docker 29: docker volume prune по умолчанию удаляет только анонимные тома — те, что Docker создал сам, без имени. Именованные, где обычно и живут данные стендов, он не трогает. Флаг -a снимает это ограничение и вот тогда сносит всё неиспользуемое, включая базы погашенных стендов.
«Неиспользуемый» значит «не подключён ни к одному контейнеру» — в том числе к остановленному. Погашенный docker compose down стенд подпадает под это определение: контейнеров нет, тома висят. Именно так и теряются данные, которые собирались вернуть.
docker system prune -a удаляет все образы, на которых сейчас не держится ни один контейнер, — не только висячие слои. Место освободит заметно, но следующая сборка или запуск потянут всё из реестра заново.
Отдельно: docker system prune не трогает тома, для них нужен флаг --volumes — и он тоже про анонимные.