Docker 基于图像标签修剪悬挂图像及其相关容器的最佳实践是什么?

Docker 基于图像标签修剪悬挂图像及其相关容器的最佳实践是什么?,docker,docker-image,Docker,Docker Image,我有两个悬空的图像(出现在docker images中的图像,没有标签)。要根据标签清理它们,通常的命令是:docker image prune-a--force--filter=“LABEL=some key=some value” 但是,此命令不会修剪与容器关联的悬挂图像。无论容器是启动还是停止 我无法运行docker container prune-f,因为我不想修剪所有停止的容器。是否有基于图像标签修剪图像和与图像关联的容器的命令?如果图像带有标签,则要删除使用该图像的所有容器 使用xa

我有两个悬空的图像(出现在
docker images
中的图像,没有标签)。要根据标签清理它们,通常的命令是:
docker image prune-a--force--filter=“LABEL=some key=some value”

但是,此命令不会修剪与容器关联的悬挂图像。无论容器是启动还是停止

我无法运行
docker container prune-f
,因为我不想修剪所有停止的容器。是否有基于图像标签修剪图像和与图像关联的容器的命令?

如果图像带有标签,则要删除使用该图像的所有容器

使用
xargs
祖先
过滤器,您可以执行以下操作:

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 $_}
给定带有标签的一个或多个图像,您希望删除使用该图像的所有容器

使用
xargs
祖先
过滤器,您可以执行以下操作:

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 $_}

这回答了你的问题吗?仅删除悬挂图像:
docker rmi$(docker images--filter“dangling=true”-q--no trunc)
您不能对容器正在使用的悬挂图像应用rmi,您可以只过滤
docker ps-aq
的结果,并使用它来修剪不需要的容器吗?比如
docker rm-f$(docker ps-aq--filter=…)
?基于?这是Linux、PowerShell还是跨平台命令?这是否回答了您的问题?仅删除悬挂图像:
docker rmi$(docker images--filter“dangling=true”-q--no trunc)
您不能对容器正在使用的悬挂图像应用rmi,您可以只过滤
docker ps-aq
的结果,并使用它来修剪不需要的容器吗?比如
docker rm-f$(docker ps-aq--filter=…)
?基于?这是Linux、PowerShell还是跨平台命令?