[發明專利]一種從本地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.szxzyx.cn/pat/books/201910207652.5/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種使CPLD鏡像實時運行的燒錄方法與裝置
- 下一篇:一種系統安裝方法及裝置





