[發(fā)明專利]一種從本地docker鏡像中提取文件內(nèi)容的方法及裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201910207652.5 | 申請(qǐng)日: | 2019-03-18 |
| 公開(kāi)(公告)號(hào): | CN109933342B | 公開(kāi)(公告)日: | 2020-10-16 |
| 發(fā)明(設(shè)計(jì))人: | 杜雄;程度;張福 | 申請(qǐng)(專利權(quán))人: | 北京升鑫網(wǎng)絡(luò)科技有限公司 |
| 主分類號(hào): | G06F8/61 | 分類號(hào): | G06F8/61;G06F16/185 |
| 代理公司: | 北京沁優(yōu)知識(shí)產(chǎn)權(quán)代理有限公司 11684 | 代理人: | 郭峰 |
| 地址: | 100000 北京市*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 本地 docker 鏡像中 提取 文件 內(nèi)容 方法 裝置 | ||
本發(fā)明一方面提供了一種從本地docker鏡像中提取文件內(nèi)容的方法,包括以下步驟:通過(guò)Docker API(Application Program Interface,應(yīng)用程序接口)枚舉當(dāng)前主機(jī)鏡像列表;遍歷鏡像列表,獲取鏡像id以及層的存放路徑,形成層鏈表,逐層掃描層鏈表,獲取層的安裝包信息;形成層鏈表的方法包括以下步驟:從鏡像列表中選取一個(gè)鏡像,通Docker API獲取該鏡像的詳細(xì)信息;判斷該鏡像的存儲(chǔ)方式是否為有效驅(qū)動(dòng);若是,進(jìn)入第一讀取路徑;若否,進(jìn)入第二讀取路徑。本發(fā)明的另一方面提供了一種從本地docker鏡像中提取文件內(nèi)容的裝置,包括:遍歷判斷模塊、第一讀取路徑模塊和第二讀取路徑模塊。
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)信息處理領(lǐng)域領(lǐng)域,尤其涉及一種從本地docker鏡像中提取文件內(nèi)容的方法及裝置。
背景技術(shù)
目前,Docker是當(dāng)前最主流的開(kāi)源的應(yīng)用容器引擎,讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到機(jī)器上,從而實(shí)現(xiàn)一次創(chuàng)建、任意運(yùn)行的目的。Docker的使用核心就是鏡像,而鏡像倉(cāng)庫(kù)作為鏡像存儲(chǔ)的后端在Docker的發(fā)展過(guò)程中起著舉足輕重的作用。在容器運(yùn)行環(huán)境下,所有服務(wù)程序均被打包到容器鏡像中,隨著鏡像包一起發(fā)布,由于在鏡像打包發(fā)布過(guò)程中存在不規(guī)范的操作,不合法的安裝包下載源,中間人攻擊等原因,導(dǎo)致鏡像引入木馬,或者漏洞,這樣就需要提供一種機(jī)制快速提取鏡像中的文件內(nèi)容,發(fā)現(xiàn)鏡像包中存在的各種CVE(Common Vulnerabilities and Exposures,漏洞)。
現(xiàn)有的開(kāi)源版鏡像風(fēng)險(xiǎn)掃描工具clair/clairctl,該工具提供一般掃描方法:
1)根據(jù)鏡像id(identity,身份識(shí)別碼),解析鏡像包信息,獲取層id列表。
2)通過(guò)鏡像層傳入API發(fā)送層的id信息,clair將組裝url(Uniform ResourceLocator,統(tǒng)一資源定位符)通過(guò)本地docker api從docker engine(鏡像源站)中下載指定鏡像層。
3)內(nèi)存中解壓層的所有文件,找到安裝包信息數(shù)據(jù)庫(kù)文件,掃描層的安裝包信息并返回結(jié)果。
但該掃描方法沒(méi)有針對(duì)本地鏡像特點(diǎn)優(yōu)化數(shù)據(jù)訪問(wèn)方式,如層的訪問(wèn)順序,解壓方法,導(dǎo)致CPU(Central Processing Unit,中央處理器),內(nèi)存性能消耗大,掃描速度慢。
因此,本領(lǐng)域亟需一種能夠更好從本地docker鏡像中提取文件內(nèi)容的方法,以提高訪問(wèn)速度。
有鑒于此,提出本發(fā)明。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種能夠更好從本地docker鏡像中提取文件內(nèi)容的方法及裝置,以解決現(xiàn)有獲取本地Docker鏡像中相關(guān)文件信息過(guò)程中CPU、內(nèi)存性能消耗大,掃描速度慢的技術(shù)問(wèn)題。技術(shù)方案如下:
本發(fā)明一方面提供了一種從本地docker鏡像中提取文件內(nèi)容的方法,包括以下步驟:
通過(guò)Docker API(Application Program Interface,應(yīng)用程序接口)枚舉當(dāng)前主機(jī)鏡像列表;
遍歷鏡像列表,獲取鏡像id以及層的存放路徑,形成層鏈表,逐層掃描層鏈表,獲取層的安裝包信息。
優(yōu)選的,形成層鏈表的方法包括以下步驟:
從鏡像列表中選取一個(gè)鏡像,通Docker API獲取該鏡像的詳細(xì)信息;
判斷該鏡像的存儲(chǔ)方式是否為有效驅(qū)動(dòng);
若是,進(jìn)入第一讀取路徑,所述第一讀取路徑包括以下步驟:
通過(guò)有效驅(qū)動(dòng),獲取鏡像id,以及層在主機(jī)的存放路徑,形成層鏈表;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京升鑫網(wǎng)絡(luò)科技有限公司,未經(jīng)北京升鑫網(wǎng)絡(luò)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910207652.5/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 業(yè)務(wù)中的數(shù)據(jù)鏡像
- 鏡像盤中的恢復(fù)控制
- 一種云環(huán)境下獲取鏡像的方法、裝置和系統(tǒng)
- 鏡像處理方法以及計(jì)算設(shè)備
- 一種鏡像管理方法及裝置
- 一種鏡像傳輸方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 云平臺(tái)中鏡像管理方法、裝置、系統(tǒng)及存儲(chǔ)介質(zhì)
- 物理機(jī)共享容器鏡像的方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 基于鏡像依賴網(wǎng)絡(luò)的容器影響力度量方法和裝置
- 一種基于區(qū)塊鏈技術(shù)的容器鏡像可信認(rèn)證的系統(tǒng)與方法





