尝试从 bash 输出中 grep docker id

尝试从 bash 输出中 grep docker id

这是我的命令

docker images --filter  label=my_label=intro2

和输出

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<none>              <none>              3b3cb3ba4220        45 hours ago        1.34GB

我该如何 grep 3b3cb3ba4220?另外,关于 grep / awk 如何工作的一般解释将不胜感激。

答案1

docker images --filter label=my_label=intro2 --format "{{.ID}}" 

我自己不使用 Docker,我无法验证这是否有效,但这就是手册说。

--format选项的描述见手册的另一部分

答案2

这可能有点晚了。但是,以“<none>”作为存储库和标签的图像称为悬挂图像。

这是什么Docker 的文档不得不说一下《显示未标记的图像(悬空)“的小节”过滤“ 部分:

$ docker images --filter "dangling=true"

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<none>              <none>              8abc22fbb042        4 weeks ago         0 B
<none>              <none>              48e5f45168b9        4 weeks ago         2.489 MB
<none>              <none>              bf747efa0e2f        4 weeks ago         0 B

这将显示未标记的图像,这些图像是图像树的叶子(不是中间层)。当新构建的映像将 repo:tag 从映像 ID 中删除,将其保留为 : 或未标记时,就会出现这些映像。如果在容器当前正在使用图像时尝试删除该图像,则会发出警告。通过使用此标志,它允许批量清理。

Docker 提供了提取此类悬空 ID 的确切命令。不需要 grep。使用以下内容:

docker images --format "{{.ID}}" --filter "dangling=true"

相关内容