我们团队的目标是准备好大约十几个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>
我希望我的想法能帮助你解决你的问题。