[发明专利]一种从本地docker镜像中提取文件内容的方法及装置有效
申请号: | 201910207652.5 | 申请日: | 2019-03-18 |
公开(公告)号: | CN109933342B | 公开(公告)日: | 2020-10-16 |
发明(设计)人: | 杜雄;程度;张福 | 申请(专利权)人: | 北京升鑫网络科技有限公司 |
主分类号: | G06F8/61 | 分类号: | G06F8/61;G06F16/185 |
代理公司: | 北京沁优知识产权代理有限公司 11684 | 代理人: | 郭峰 |
地址: | 100000 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 本地 docker 镜像中 提取 文件 内容 方法 装置 | ||
1.一种从本地docker镜像中提取文件内容的方法,其特征在于,包括以下步骤:
通过Docker API枚举当前主机镜像列表;遍历镜像列表,获取镜像id以及层的存放路径,形成层链表,逐层扫描层链表,获取层的安装包信息;
所述形成层链表的方法包括以下步骤:
从镜像列表中选取一个镜像,通Docker API获取该镜像的详细信息;判断该镜像的存储方式是否为有效驱动;
若是,进入第一读取路径,所述第一读取路径包括以下步骤:通过有效驱动,获取镜像id,以及层在主机的存放路径,形成层链表;
若否,进入第二读取路径,所述第二读取路径包括以下步骤:通过Docker API导出并保存镜像压缩包到本地缓存目录;解压镜像压缩包到临时目录,读取manifest文件,获取镜像id,以及层在临时目录的存放路径,形成层链表。
2.根据权利要求1所述的从本地docker镜像中提取文件内容的方法,其特征在于,有效驱动下,镜像的所述存储方式为AUFS或OverlayFS,能够被aufs、overlay2、overlay中的一种存储驱动读取。
3.根据权利要求1所述的从本地docker镜像中提取文件内容的方法,其特征在于,所述层链表顶端为镜像层id,自顶向底以链表方式排列:第一读取路径下层在主机上的存放路径信息或第二读取路径下层在临时目录的存放路径信息。
4.根据权利要求3所述的从本地docker镜像中提取文件内容的方法,其特征在于,逐层扫描层链表的方法包括以下步骤:
根据层链表判断是否存在下一层;
若是,在缓存数据库中查找层的安装包信息;
若否,根据镜像列表进行下一个镜像的读取或是遍历完成结束读取文件内容。
5.根据权利要求4所述的从本地docker镜像中提取文件内容的方法,其特征在于,第一读取路径中从缓存数据库中查找层的安装包信息的方法包括以下步骤:
在缓存数据库中判断层的安装包信息是否存在;
若是,从缓存数据库中获取层的安装包信息,返回该信息;跳出循环返回到判断遍历是否完成;
若否,在每层的目录下,利用镜像安装包数据库文件查找层的安装包信息。
6.根据权利要求5所述的从本地docker镜像中提取文件内容的方法,其特征在于,第一读取路径中,利用镜像安装包数据库文件查找层的安装包信息包括以下步骤:
检查镜像安装包数据库文件是否存在;
若是,逐行扫描数据库文件,获取层的安装包信息;在缓存数据库中存放层的安装包信息,返回该信息;跳出循环返回到判断遍历是否完成;
若否,返回到判断下一层是否存在。
7.根据权利要求4所述的从本地docker镜像中提取文件内容的方法,其特征在于,第二读取路径中从缓存数据库中查找层的安装包信息的方法包括以下步骤:
根据层id,在缓存数据库中判断层的安装包信息是否存在;
若是,从缓存数据库中获取层的安装包信息,返回该信息;跳出循环返回到判断遍历是否完成;
若否,读取层的压缩包,利用安装包数据库文件查找层的安装包信息。
8.根据权利要求7所述的从本地docker镜像中提取文件内容的方法,其特征在于,第二读取路径中利用安装包数据库文件查找层的安装包信息包括以下步骤:
检查安装包数据库文件是否存在;
若是,解压安装包数据库文件;逐行扫描数据库文件,获取层的安装包信息;
在缓存数据库中存放层的安装包信息,返回该信息;跳出循环返回到判断遍历是否完成;
若否,返回到判断下一层是否存在。
9.一种从本地docker镜像中提取文件内容的装置,其特征在于,包括:
遍历判断模块、第一读取路径模块和第二读取路径模块;
所述遍历判断模块用于枚举当前主机镜像列表,判断是否为有效驱动的存储方式,以进入不同的读取路径,是按权利要求1-8任一项所述的从本地docker镜像中提取文件内容的方法生成的;
所述第一读取路径模块用于镜像存储方式能被有效驱动时的读取方法,是按照权利要求1-6任一项所述的第一读取路径的方法生成的;
所述第二读取路径模块用于镜像存储方式不能被有效驱动时的读取方法,是按照权利要求1-4、7-8任一项所述的第二读取路径的方法生成。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京升鑫网络科技有限公司,未经北京升鑫网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910207652.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种使CPLD镜像实时运行的烧录方法与装置
- 下一篇:一种系统安装方法及装置