Как удалить образы Docker и очистить кэш на Mac

Удалить образы Docker и очистить кэш на Mac или MacBook можно собственными командами Docker, такими как docker system prune: они убирают остановленные контейнеры, неиспользуемые сети, ненужные образы и кэш сборки. Всё это лежит в одном образе диска Docker Desktop, который дорастает до десятков гигабайт. Ниже — что удаляет каждая команда и что оставляет, чтобы не потерять данные в томах.

Посмотреть, что занимает место

Запустите Docker Desktop и выполните в Терминале эту команду. Она покажет, сколько места занимают образы, контейнеры, локальные тома и кэш сборки и сколько из этого можно освободить:

docker system df

С ключом -v команда покажет каждый образ, контейнер и том отдельно.

Очистка командой docker system prune

Эта команда удаляет все остановленные контейнеры, сети, которыми не пользуется ни один контейнер, «висячие» образы (слои без тега, оставшиеся после пересборок) и неиспользуемый кэш сборки. Перед удалением она спрашивает подтверждение. Тома и образы с тегами остаются:

docker system prune

С ключом -a она удаляет ещё и все образы, которые не использует ни один контейнер, в том числе с тегами. Когда они понадобятся, Docker скачает или соберёт их заново:

docker system prune -a

Ключ --volumes удаляет ещё и анонимные тома, не подключённые ни к одному контейнеру. В томах хранятся данные контейнеров, например файлы базы данных, поэтому добавляйте его, только если точно знаете, что там ничего не нужно. Именованные тома остаются и в этом случае.

Как удалить образы Docker

Чтобы почистить только образы, эта команда удалит «висячие» образы:

docker image prune

А эта — все образы, которые не использует ни один контейнер, включая остановленные:

docker image prune -a

Чтобы удалить один образ, выполните docker image rm с его именем или ID из списка docker image ls.

Очистить кэш сборки

Если вы сами собираете образы, кэш сборки часто занимает больше всего. Эта команда удаляет «висячий» кэш сборки. С ключом -a — весь неиспользуемый. Следующие сборки будут дольше:

docker builder prune

Уменьшить диск Docker Desktop

Docker Desktop хранит контейнеры, образы и тома в одном файле образа диска Docker.raw в папке ~/Library/Containers/com.docker.docker/Data/vms/0/data. Finder может показывать его максимальный размер, а не реально занятое место. После очистки место возвращается не сразу, а через несколько минут.

  • Settings › Resources › Advanced › Disk usage limit задаёт, сколько места Docker может занять. Если уменьшить лимит, текущий образ диска удалится вместе со всеми контейнерами и образами.
  • Troubleshoot › Clean up data (в меню Docker в строке меню) удаляет все контейнеры и образы, а настройки оставляет.

Если Docker больше не нужен, см. как удалить Docker Desktop.

Чтобы Mac оставался в порядке

MacWashing, раздел «Сборка мусора»: найдены мусор Xcode, пользовательский кэш, установщики и журналы, к очистке 22,83 ГБ

MacWashing не удаляет образы, контейнеры и тома Docker: используйте команды выше, Docker знает, что сейчас используется. Сборка мусора очищает кэш остальных программ и инструментов разработчика.

Бесплатная пробная версия · macOS 14 и новее

Вопросы и ответы

Удаляет ли docker system prune тома?

По умолчанию нет. С ключом --volumes она удаляет анонимные тома, не подключённые к контейнерам. Именованные тома остаются, пока вы не удалите их через docker volume rm или docker volume prune -a.

Как удалить образы Docker, чтобы не сломать проекты?

Команда docker image prune -a удаляет только образы, которые не использует ни один контейнер. Если образ снова понадобится, Docker скачает или соберёт его заново. Перед этим проверьте docker ps -a: остановленный контейнер держит свой образ.

Почему место не освободилось после очистки?

Docker Desktop освобождает место внутри своего образа диска, и macOS видит это через несколько минут. Удаление файлов внутри работающего контейнера места не освобождает, удаление образов — освобождает.