Вариант использования: очистить дисковое пространство, удалив старые образы докеров
Взяв эти образы в качестве примера.
REPOSITORY TAG IMAGE ID CREATED SIZE
gateway 2f280f169e9b018c3ee155e47e176c3418349b90 846b7ba3595c 9 hours ago 597MB
gateway latest 846b7ba3595c 9 hours ago 597MB
gateway 2f280f169e9b018c3ee155e47e176c3418349b90 e47e176c3418 9 hours ago 597MB
order 2f280f169e9b018c3ee155e47e176c3418349b90 0e01f7594e4a 9 hours ago 591MB
order latest 0e01f7594e4a 9 hours ago 591MB
order 2f280f169e9b018c3ee155e47e176c3418349b90 7e176c34183a 9 hours ago 591MB
payment 2f280f169e9b018c3ee155e47e176c3418349b90 e2053260d33e 9 hours ago 590MB
payment latest e2053260d33e 9 hours ago 590MB
payment 2f280f169e9b018c3ee155e47e176c3418349b90 169e9b018c3e 9 hours ago 590MB
price-offer 2f280f169e9b018c3ee155e47e176c3418349b90 5a4726a65fbd 9 hours ago 589MB
Я хотел бы удалить все изображения, но всегда сохранять самые новые Nизображения для каждого имени / репозитория.
Итак, у меня есть 3 изображения шлюза, 3 заказа, 3 платежа и 1 предложение цены. Если я запускаю скрипт с N = 2, он должен удалить самый старый шлюз, заказ, изображение платежа и не удалять один образ предложения цены. Если я выполню скрипт с N = 1, он сохранит только самое новое изображение для каждого хранилища / имени.
В настоящее время у меня есть это:
docker images | tail -n+2 | awk '{ print $1,$3 }' | sort -r
, что дает мне:
gateway e47e176c3418
gateway 846b7ba3595c
gateway 846b7ba3595c
order 7e176c34183a
order 0e01f7594e4a
order 0e01f7594e4a
payment 169e9b018c3e
payment e2053260d33e
payment e2053260d33e
price-offer 5a4726a65fbd
Но я борюсь с частью, которая просто печатает первые N строк для каждого изображения (где $ 1 - то же самое).