Docker занимает место на моём Mac
Docker Desktop хранит всё в одном файле. Он растёт при каждой сборке, а удаление образов его не уменьшает. Вот почему так и что на самом деле возвращает место.
14 дней бесплатно, карта не нужна. Затем $15 один раз за 3 компьютера, macOS и Linux.

Где именно место
Docker Desktop на macOS запускает виртуальную машину с Linux, и вся файловая система этой машины — один разрежённый файл на вашем Mac:
~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw
Проверьте его реальный размер на диске — не логический, который всегда равен максимуму, разрешённому вами для Docker:
du -h -d0 ~/Library/Containers/com.docker.docker/Data/vms/0/data/
Почему удаление образов его не уменьшает
Удаление образа освобождает блоки внутри файловой системы виртуальной машины, но файл на вашем Mac сохраняет свой размер — он уже забрал это место у macOS. Свежие версии Docker Desktop отправляют TRIM изнутри машины, что позволяет macOS вернуть освобождённые блоки, но происходит это по расписанию Docker, а не в момент, когда вы выполнили prune. До тех пор docker system df сообщает об освобождённых гигабайтах, а Finder не показывает никаких изменений.
Как вернуть место
По порядку: от наименее разрушительного.
1. Посмотрите, сколько, по мнению Docker, он занимает
Всегда начинайте отсюда. Команда разделяет образы, контейнеры, тома и кэш сборки и показывает, сколько из каждого можно вернуть.
docker system df -v
2. Очистите кэш сборки
На машине, где образы собираются регулярно, это обычно самый крупный пункт и самый безопасный для удаления — единственная плата в том, что следующая сборка будет медленнее.
docker builder prune -a
3. Уберите то, что действительно не используется
Остановленные контейнеры, повисшие образы и неиспользуемые сети:
docker system prune
Добавьте -a чтобы удалить ещё и все образы, не занятые работающим контейнером, — их придётся скачивать заново. Добавляйте --volumes только если уверены: в томах базы данных хранят свои данные, и это единственная команда на этой странице, которая уничтожает то, что нельзя скачать снова.
4. Посмотрите список томов, прежде чем их трогать
Проверьте, что именно будет удалено:
docker volume ls
docker volume ls -f dangling=true
Docker редко бывает единственной причиной
Можно выполнить все команды с этой страницы, а на том же Mac Xcode DerivedData и пара забытых наборов весов обычно занимают не меньше. Bytesweep измеряет реальный размер Docker на диске рядом со всем остальным за один десятисекундный проход, поэтому диск чинится за раз, а не по одному инструменту.
5. Заставьте macOS вернуть место в файле
После очистки у Docker Desktop есть штатный способ вернуть освобождённые блоки: Настройки → Ресурсы → Дополнительно → Использование дискалибо выход и повторный запуск Docker Desktop, который запускает TRIM при старте. Дайте минуту и проверьте размер файла заново, прежде чем решать, что не сработало.
6. Уменьшите лимит диска
В разделе Настройки → Ресурсылимит виртуального диска определяет, до какого размера Docker.raw разрешено расти. Само по себе уменьшение ничего не освободит, но ограничит проблему. Именно привычка поднимать лимит «на всякий случай» и довела файл до 64 ГБ.
7. Крайняя мера
Настройки → Устранение неполадок → Clean / Purge data полностью сбрасывает диск виртуальной машины и возвращает файл почти к нулю. Это удаляет все ваши образы, контейнеры и тома. Пользуйтесь этим, когда ничего другое не помогло и вы знаете, что лежит в томах.
Не удаляйте Docker.raw через Finder. Это не файл кэша, а данные всей установки Docker; удаление его при работающем Docker может оставить виртуальную машину в состоянии, из которого всё равно понадобится сброс.
Тоже стоит проверить
Docker редко бывает один
На том Mac, где Docker дорос до 50 ГБ, DerivedData в Xcode и локальные модели ИИ обычно идут следом. Если вы освобождаете место, стоит один раз измерить весь диск, а не чинить по одной вещи за раз. Полный список →
В Linux файла образа нет
Docker в Linux пишет прямо в /var/lib/dockerпоэтому prune освобождает место сразу, и описанной выше проблемы с TRIM не возникает. Очистка в Linux →
Посмотрите на Docker рядом со всем остальным
Bytesweep измеряет реальный размер Docker на диске, показывает его рядом с Xcode, симуляторами, node_modules и весами моделей и отмечает, что безопасно очищать, — не трогая ваши тома.
Вопросы
Безопасно ли удалять Docker.raw?
Не через Finder и не при работающем Docker. Этот один файл — все ваши образы, контейнеры и тома. Если вы действительно хотите начать с чистого листа, используйте «Устранение неполадок → Clean / Purge data» в Docker Desktop: это делает то же самое, но так, как Docker ожидает.
Почему docker system prune пишет, что освободил 20 ГБ, а ничего не изменилось?
Потому что он освободил 20 ГБ внутри файловой системы виртуальной машины, а не на вашем Mac. Файл сохраняет размер, пока не отработает TRIM и macOS не заберёт блоки обратно. Обычно это запускается выходом и повторным открытием Docker Desktop.
Удалит ли docker system prune мои базы данных?
Только если добавить --volumes. Без этого флага тома не трогаются. С ним удаляется любой том, не подключённый к контейнеру, а том остановленной базы данных считается неподключённым.
Каким должен быть размер Docker.raw?
Единственно верного ответа нет, но на машине с несколькими активными проектами 15–25 ГБ — это нормально, а 60 ГБ означает, что кэш сборки не очищали ни разу. Проверьте docker system df -v прежде чем считать, что дело в образах.