Если у вас все в порядке с сохранением одного изображения, вы можете использовать docker image prune -f
, который удалит все изображения, кроме тех, которые связаны с контейнером, поэтому, если вы выполните эту команду во время работы контейнера, он удалит остальные
Не забывайте также часто запускать docker system prune
для дальнейшего сокращения использования хранилища.
В вашей ситуации, когда вам нужно сохранить более одного изображения, вы можетепопробуйте это:
#!/bin/bash
for tag in $(docker image ls | sed 1,4d | awk '{print $3}')
do
docker image rm -f $tag
done
В первой строке будут перечислены все изображения докера, удалены из списка первые 3 изображения, которые вы хотите сохранить, и выберите только столбец с идентификатором изображения.Затем для каждого из идентификаторов мы удаляем изображение.
Если вы хотите удалить больше, измените 4d на другое число.Обратите внимание, что первая строка является заголовком, поэтому ее всегда нужно удалять.
Если вы хотите сначала отфильтровать изображения по тегу, вы можете создать свои собственные фильтры.