根据图像标签修剪悬挂图像及其相关容器的最佳做法是什么?

问题描述 投票:0回答:1

我有几个悬垂的图片(出现在下面的图片)。docker images with none标签)。) 要清理它们,基于LABEL,通常的命令是。docker image prune -a --force --filter="label=some-key=some-value".

但是,这个命令不会修剪有容器关联的悬空图像。无论容器是启动还是停止。

我无法运行 docker container prune -f 因为我不想修剪所有停止的容器。有没有一个命令可以修剪图片和与图片相关的容器?基于图像标签?

docker docker-image
1个回答
0
投票

给定一个带有label的图像(或图像),你要删除使用该图像的任何容器。

使用 xargsancestor 过滤器,你可以这样做。

docker image ls -q --filter "label=foo=bar" | \
    xargs -I IMG docker ps -aq --filter "ancestor=IMG" | \
    xargs docker rm -fv

虽然不完全是 "一条命令",但应该能让你达到目的

或者Powershell。

@(docker image ls -q --filter "label=foo=bar") | %{&"docker" ps -qa --filter "ancestor=$_"} | %{&"docker" rm -fv $_}
© www.soinside.com 2019 - 2024. All rights reserved.