首页 > 解决方案 > 如何在构建期间创建的中间容器上使用标签过滤器(假设 LABEL 在 FROM 命令之后立即设置)?

问题描述

在 dockerfile 中,假设我在 FROM 命令之后立即设置了一个 LABEL,那么标签是否应用于后续步骤中生成的每个中间容器和图像?

我知道在每个步骤之后的构建过程中都会删除中间容器。但是我面临一个问题,其中一些中间容器没有被移除。这导致从这些容器创建的图像(在构建过程中)变得悬空。

我可以看到 中的图像docker images和 中的容器docker ps -aq

我正在尝试过滤它们以获取列表 - 最终目标是修剪图像。过滤以获取基于标签的图像列表:docker images --filter "label=some-key=some-value"- 这向我显示了我希望修剪的图像。但在此之前,我需要停止/修剪从上述图像创建的那些容器。根据 LABEL - 过滤以获取列表docker ps --filter "label=some-key=some-value",但它不会返回容器(不返回任何值)。

当我这样做时docker inspect <container-id>,我可以在标签下的配置部分中看到标签 ("some-key"="some-value")。如何根据此标签过滤容器?

标签: dockerdockerfiledocker-containerdocker-imagedocker-build

解决方案


推荐阅读