Есть ли способ очистить кеш сборки докера?

Я использую много сборок с помощью Docker в MacOS. В конце концов, накапливается много кеша сборки, например. вот что я вижу в docker system df:

YPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          22        0         9.67GB    9.67GB (100%)
Containers      0         0         0B        0B
Local Volumes   0         0         0B        0B
Build Cache     1006      0         258GB     258GB

Есть ли способ очистить элементы из кеша сборки? Я вижу их подробный список, например:

CACHE ID       CACHE TYPE     SIZE      CREATED             LAST USED           USAGE     SHARED
045834a7a6e9   regular        11.1MB    3 weeks ago                             0         false
114ca5b7280f   regular        114MB     3 weeks ago                             0         false
27d6fcbb531d   regular        1.65kB    3 weeks ago                             0         false
3042a2a59d4f   regular        553kB     3 weeks ago                             0         false
3d70c1a312eb   regular        468MB     3 weeks ago                             0         false
658aaefc4cdd   regular        209MB     3 weeks ago                             0         false
7d5b48149871   regular        59.9MB    3 weeks ago                             0         false
86569a54d5d4   regular        16.5MB    3 weeks ago                             0         false

и т. д. с помощью docker system df -v, но единственный способ удалить их — это полностью стереть все данные Docker, включая изображения и т. д., чего я не хочу делать. Есть ли другой способ заставить Docker освободить место? Я вижу эти объекты, но не могу найти способ их удалить...

P.S.1 Этот вопрос не о том, как удалять образы и контейнеры. Я знаю, как их удалить, к сожалению, удаление ничего не делает с содержимым «Build Cache», которое продолжает занимать место.

P.S.2 Это особенно важно в MacOS, потому что там Docker работает в пределах одного конкретного выделенного тома, который таким образом очень быстро исчерпывается, и я начинаю получать ошибки «недостаточно места на диске» при сборке. Поскольку сборки выполняются повторно, хранение данных из старых сборок для меня бесполезно, поэтому было бы здорово найти способ удалить старые кэши сборок.

Нет, к сожалению нет. Я знаю, как удалять изображения и контейнеры. Это специально для кеша сборки, который, как вы можете видеть, является отдельным элементом в выводе df, и при этом огромным.

StasM 22.12.2020 09:47

Попробуйте это https://docs.docker.com/engine/reference/commandline/builder‌​_prune/

Ishan 22.12.2020 09:48

@Ишан, да! Кажется, это работает, кэш сборки уменьшен с 258 ГБ до 37 ГБ, что выглядит намного разумнее. Хотя я не вижу, чтобы это пространство было восстановлено (рабочий стол Docker по-прежнему показывает то же использование диска), я думаю, что это может быть решением. Не могли бы вы добавить это как ответ, чтобы я мог его одобрить?

StasM 22.12.2020 09:56
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
36
4
26 026
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

docker builder prune --all

подробнее: https://docs.docker.com/engine/reference/commandline/builder_prune/

Ответ принят как подходящий
docker builder prune

Удаляет кеш сборки. Документы: docker builder prune

--all имело значение. Без него не работало. (на ОС X)

BertC 16.02.2023 12:35

В моем случае после обрезки образа перезапуск докера помог полностью стереть кеши.

Deiveegaraja Andaver 20.02.2023 07:10

Другие вопросы по теме