[發(fā)明專利]一種Docker鏡像構(gòu)建方法及裝置在審
| 申請(qǐng)?zhí)枺?/td> | 201910760415.1 | 申請(qǐng)日: | 2019-08-16 |
| 公開(公告)號(hào): | CN110704156A | 公開(公告)日: | 2020-01-17 |
| 發(fā)明(設(shè)計(jì))人: | 閆璟 | 申請(qǐng)(專利權(quán))人: | 北京奇藝世紀(jì)科技有限公司 |
| 主分類號(hào): | G06F9/455 | 分類號(hào): | G06F9/455;G06F8/61 |
| 代理公司: | 11662 北京華夏泰和知識(shí)產(chǎn)權(quán)代理有限公司 | 代理人: | 郭金鑫 |
| 地址: | 100080 北京市海淀區(qū)*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 鏡像文件 差異信息 新層 臨時(shí)容器 鏡像構(gòu)建 創(chuàng)建 寫入 存儲(chǔ)空間 方案創(chuàng)建 方案構(gòu)建 計(jì)算節(jié)點(diǎn) 重新構(gòu)建 體積小 構(gòu)建 帶寬 分發(fā) 倉庫 占用 更新 | ||
本發(fā)明實(shí)施例提出的一種Docker鏡像構(gòu)建方法及裝置,在Docker鏡像構(gòu)建時(shí),先確定基礎(chǔ)鏡像,通過基礎(chǔ)鏡像創(chuàng)建臨時(shí)容器,確定要?jiǎng)?chuàng)建的Docker鏡像所需的目標(biāo)鏡像文件,確定目標(biāo)鏡像文件與基礎(chǔ)鏡像中的鏡像文件的差異信息,將差異信息寫入臨時(shí)容器,提交寫入了差異信息的臨時(shí)容器作為基礎(chǔ)鏡像文件的新層,將包含有新層的基礎(chǔ)鏡像文件作為創(chuàng)建的Docker鏡像。通過本方案創(chuàng)建Docker鏡像時(shí)只需將目標(biāo)鏡像文件與基礎(chǔ)鏡像中的鏡像文件的差異信息更新到基礎(chǔ)鏡像的新層之中即可,與通過現(xiàn)有Dockerfile構(gòu)建Docker鏡像,需要重新構(gòu)建發(fā)生變化的層和發(fā)生變化的層之下的所有層相比,本方案構(gòu)建的新層體積小很多,所以減少了分發(fā)時(shí)所需的帶寬大小,降低了對(duì)鏡像倉庫及計(jì)算節(jié)點(diǎn)的存儲(chǔ)空間的占用。
技術(shù)領(lǐng)域
本發(fā)明實(shí)施例涉及通信技術(shù)領(lǐng)域,具體涉及一種Docker鏡像構(gòu)建方法及裝置。
背景技術(shù)
Docker是一個(gè)開源的應(yīng)用容器引擎,旨在提供一種應(yīng)用的自動(dòng)化部署解決方案,能夠讓開發(fā)者打包他們的應(yīng)用及依賴包到一個(gè)可移植的容器中,容器即為輕量級(jí)虛擬機(jī),然后發(fā)布到任何流行的Linux機(jī)器上,實(shí)現(xiàn)應(yīng)用的自動(dòng)化安裝、部署和升級(jí),非常方便。而且,Docker能夠虛擬出多個(gè)容器,每個(gè)容器之間相互隔離沒有接口,可以將彼此的生產(chǎn)環(huán)境和開發(fā)環(huán)境分開,互不影響。
現(xiàn)有的視頻轉(zhuǎn)碼服務(wù),通常采用容器技術(shù)進(jìn)行分布式任務(wù)的提交與執(zhí)行,依賴Docker鏡像進(jìn)行版本發(fā)布以及部署,然而根據(jù)現(xiàn)有的Docker應(yīng)用場景,在實(shí)際使用中,存在如下問題:
Docker鏡像在使用過程中需要頻繁的對(duì)版本進(jìn)行迭代更新,一個(gè)Docker鏡像由多個(gè)可讀的鏡像層組成,按照Docker鏡像的分層原理,通過傳統(tǒng)的Dockerfile分層構(gòu)建方式對(duì)Docker鏡像中的版本進(jìn)行更新時(shí),Dockerfile將在每層文件發(fā)生變化時(shí),重新構(gòu)建此層與此層之下的所有層,而且大部分版本文件均在Dockerfile中的最后一層中,每次構(gòu)建甚至一個(gè)小小的文件改動(dòng)都需要重新建立完整的新層,這使得每次更新Docker鏡像中的版本時(shí),都需要非常長的時(shí)間。
發(fā)明內(nèi)容
為了解決上述技術(shù)問題或者至少部分地解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種Docker鏡像構(gòu)建方法、裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)。
有鑒于此,第一方面,本發(fā)明實(shí)施例提供一種Docker鏡像構(gòu)建方法,包括:
當(dāng)接收到鏡像構(gòu)建請(qǐng)求時(shí),確定基礎(chǔ)鏡像;
利用所述基礎(chǔ)鏡像創(chuàng)建臨時(shí)容器;
獲取構(gòu)建Docker鏡像所需的目標(biāo)鏡像文件;
確定所述基礎(chǔ)鏡像中的鏡像文件與所述目標(biāo)鏡像文件的差異信息;
將所述差異信息寫入所述臨時(shí)容器;
提交寫入有所述差異信息的臨時(shí)容器作為所述基礎(chǔ)鏡像的新層,將包含有所述新層的基礎(chǔ)鏡像作為所述Docker鏡像。
在一種可能的實(shí)現(xiàn)方式中,確定基礎(chǔ)鏡像包括:
獲取至少一個(gè)候選鏡像;
確定所述候選鏡像中是否包含鏡像運(yùn)行所需的全部依賴項(xiàng);
將包含鏡像運(yùn)行所需的全部依賴項(xiàng)的候選鏡像作為第一鏡像;
獲取所述第一鏡像中的鏡像文件的層數(shù);
判斷所述鏡像文件的層數(shù)是否超過預(yù)設(shè)閾值;
如果所述鏡像文件的層數(shù)沒有超過預(yù)設(shè)閾值,將鏡像文件的層數(shù)沒有超過預(yù)設(shè)閾值的所述第一鏡像作為基礎(chǔ)鏡像。
在一種可能的實(shí)現(xiàn)方式中,確定所述基礎(chǔ)鏡像中的鏡像文件與所述目標(biāo)鏡像文件的差異信息,包括:
將所述目標(biāo)鏡像文件掛載入所述臨時(shí)容器的目錄中;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京奇藝世紀(jì)科技有限公司,未經(jīng)北京奇藝世紀(jì)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910760415.1/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 信息處理設(shè)備、信息處理方法和信息處理系統(tǒng)
- 鏡像文件管理系統(tǒng)及鏡像文件管理方法
- 交換機(jī)的鏡像升級(jí)方法及適用的linux操作系統(tǒng)和交換機(jī)
- 多層鏡像的管理方法
- 鏡像文件加載方法和裝置
- 一種鏡像文件下載方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 系統(tǒng)啟動(dòng)方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 鏡像文件的制作方法、裝置、系統(tǒng)及存儲(chǔ)介質(zhì)
- PE鏡像文件制作方法、裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)
- 一種鏡像文件去重的方法及裝置





