如何在筛选docker图像时显示评论



我们团队的目标是准备好大约十几个docker映像,用于各种测试场景的测试。为了便于选择,我们直接希望将有关场景的信息附加到图像上。我已经确定在提交容器时添加标签和注释是使用docker commit --message/--change解决此问题的方法。然而,现在我遇到了一个问题,docker似乎不允许在docker history命令之外显示COMMENT列。我想要的方法是使用

docker images --filter "label=product_version_full=X.X.X"

为了列出适合测试我们团队的版本的docker图像";X.X.X";。虽然这很好,但我并没有从之前添加到结果表中的图像中的评论中得到启发

我已经花了一些时间在互联网上寻找解决方案,但在这里或其他地方都找不到。有人见过它吗

致以最良好的问候!

遗憾的是,docker图像列表不支持漂亮的标签打印。Ubuntudocker-image-ls手册页有关于当前支持的占位符的最佳文档。

Docker检查可能很有用,但它显示了图像的大量信息:(请参阅标签,这是您感兴趣的部分(

$ docker inspect 1bfebeeed10f
.....clip
"Entrypoint": [
"/bin/sh",
"-c"
],
"OnBuild": [],
"Labels": {
"maintainer": "Softagram <no-reply@softagram.com>"
....clip..

单一标签键值可以通过以下方式提取:

$ docker inspect --format='{{index .Config.Labels "maintainer"}}' 1bfebeeed10f
Softagram <no-reply@softagram.com>

docker images-q自变量使其适合与xargs:链接

docker images -q |xargs docker inspect --format='{{ .Config.Image }} {{.Config.Labels.maintainer}}'

如果你需要得到所有的标签,你可以立刻放弃";。"维护者";因此使用{{.Config.Labels}}

将Python脚本与Docker相结合使其变得非常简单和可维护:

>>> import docker
>>> client = docker.from_env()
>>> for image in client.images.list():
...     print(image.labels)
... 
{'maintainer': 'Softagram <no-reply@softagram.com>'}
{'maintainer': 'Softagram <no-reply@softagram.com>'}
{'maintainer': 'Softagram <no-reply@softagram.com>'}
...clip

使用Python将使自动化变得顺利,点击这里阅读更多关于它的信息

我认为您可以使用一种格式,并通过使用图像名称或图像标签进行过滤来过滤getted结果:

docker images --format "{{.Repository}} {{.Tag}}"

要获得之后的图像列表,

docker images --format "{{.Repository}} {{.Tag}}" | grep <your-image-tag>

我希望我的想法能帮助你解决你的问题。

最新更新