栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Docker中获取相关子映像的列表?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Docker中获取相关子映像的列表?

简短的答案:
这是一个python3脚本,其中列出了相关的docker映像。

长答案: 您可以看到在有问题的图像之后创建的所有图像的图像ID和父ID,如下所示:

docker inspect --format='{{.Id}} {{.Parent}}'     $(docker images --filter since=f50f9524513f --quiet)

您应该能够查找具有父ID的图像(以f50f9524513f开头),然后查找 这些 图像的子图像,等等。 但这

.Parent

并不是您所想的。,因此在大多数情况下,您需要在
dockerimages --all
上面进行指定以使其正常工作,然后您还将获得所有中间层的图像ID。

这是一个更有限的python3脚本,用于解析docker输出并进行搜索以生成图像列表:

#!/usr/bin/python3import sysdef desc(image_ids, links):    if links:        link, *tail = links        if len(link) > 1: image_id, parent_id = link checkid = lambda i: parent_id.startswith(i) if any(map(checkid, image_ids)):     return desc(image_ids | {image_id}, tail)        return desc(image_ids, tail)    return image_idsdef gen_links(lines):    parseid = lambda s: s.replace('sha256:', '')    for line in reversed(list(lines)):        yield list(map(parseid, line.split()))if __name__ == '__main__':    image_ids = {sys.argv[1]}    links = gen_links(sys.stdin.readlines())    trunc = lambda s: s[:12]    print('n'.join(map(trunc, desc(image_ids, links))))

如果将其保存为

desc.py
您可以按以下方式调用它:

docker images     | fgrep -f <(docker inspect --format='{{.Id}} {{.Parent}}'         $(docker images --all --quiet)         | python3 desc.py f50f9524513f )

或只是使用上述要点,即可完成相同的操作。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/412374.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号