删除 docker 个同名图片

Delete docker images with same name

服务器存储多个 docker 具有相同名称但标签不同的图像,我找到了一个很好的命令,它将搜索 docker 具有相同名称但标签不同的图像,并删除所有,只保存最新的。 例子.

TestImage:v1
TestImage:v2
TestImage:v3
TestImage:v4

该命令将删除所有名称为“TestImage”但保存 TestImage:v4(按日期最新)的图像。

实际命令。

如果您安装了 docker cli,以下应该可以工作:

image_ids=$(docker image ls "$name" -q | tail -n +2 | xargs)
docker image rm "$image_ids"

第一个命令加载具有给定名称的所有本地图像。使用 -q 标志意味着仅输出图像 ID。
tail 程序然后跳过这些 ID 中的第一个(换句话说,从第 2 行开始读取)。由于图像是从新到旧排序的,这意味着将跳过最新的图像。
xargs 然后将所有输出的 id 放入同一行,以便 docker 可以轻松解释它们。

在该步骤中获得的 ID 可能如下所示:

ae3c4906b72c 650d66a00131 18cac929dc4f

docker image rm 将删除所有具有这些 ID 的图像。