删除 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 的图像。
服务器存储多个 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 的图像。