用例:通过删除旧的Docker映像清理磁盘空间
以该图像为例。
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是相同的)。)
用例:通过删除旧的docker映像清理磁盘空间,以该映像为例。存储库标签图像ID已创建...
因为有了列表,您可以使用before
和filter
删除旧的列表: