62]獲取單元,具體用于:
[0263]根據(jù)執(zhí)行命令中包括的待執(zhí)行應用的標識,從虛擬機鏡像存儲區(qū)域,獲取待執(zhí)行應用的標識對應的虛擬機鏡像。
[0264]從上述內(nèi)容可看出,本發(fā)明實施例中接收用于指示運行待執(zhí)行應用對應的Docker容器的執(zhí)行命令;其中,執(zhí)行命令中包括待執(zhí)行應用的標識;根據(jù)執(zhí)行命令中包括的待執(zhí)行應用的標識,獲取待執(zhí)行應用的標識對應的虛擬機鏡像;從虛擬機鏡像中讀出所有層數(shù)據(jù)和虛擬機鏡像的元數(shù)據(jù)信息;根據(jù)讀出的所有層數(shù)據(jù),生成所有層數(shù)據(jù)對應的快照層文件;所有層數(shù)據(jù)對應的快照層文件為可讀可寫的層文件;將所有層數(shù)據(jù)對應的快照層文件掛載至第一工作目錄;從掛載至第一工作目錄的所有層數(shù)據(jù)對應的快照層文件中,刪除Docker容器對應的層數(shù)據(jù)之外的層數(shù)據(jù);其中,Docker容器對應的層數(shù)據(jù)為用于運行待執(zhí)行應用對應的Docker容器所需要的層數(shù)據(jù);將進行刪除操作之后的所有層數(shù)據(jù)對應的快照層文件中剩余的層文件,以及虛擬機鏡像的元數(shù)據(jù)信息進行打包,得到預處理鏡像;根據(jù)預處理鏡像,生成容器鏡像的元數(shù)據(jù)信息;其中,容器鏡像的元數(shù)據(jù)信息包括預處理鏡像的格式信息;將預處理鏡像和容器鏡像的元數(shù)據(jù)信息打包,得到待執(zhí)行應用的標識對應的容器鏡像;通過運行待執(zhí)行應用的標識對應的容器鏡像,運行待執(zhí)行應用對應的Docker容器。由于本發(fā)明實施例中可以從虛擬機鏡像中的所有層數(shù)據(jù)中讀出Docker容器對應的層數(shù)據(jù)和虛擬機鏡像的元數(shù)據(jù)信息,且Docker容器對應的層數(shù)據(jù)為用于運行待執(zhí)行應用對應的Docker容器所需要的層數(shù)據(jù),進而,可根據(jù)該讀出的Docker容器對應的層數(shù)據(jù)和虛擬機鏡像的元數(shù)據(jù)信息,運行待執(zhí)行應用對應的Docker容器。可見,該過程簡便快捷,且避免了現(xiàn)有技術(shù)中使用人工的方式將待執(zhí)行應用的虛擬機鏡像轉(zhuǎn)換為容器鏡像的方法,也無需開發(fā)人員既要了解待執(zhí)行應用對應的虛擬機鏡像的整體部署,也要了解容器鏡像的構(gòu)建方法,可見,本發(fā)明實施例提供的方法能夠簡單高效的在Dcoker容器上運行之前在虛擬機中構(gòu)建的應用,且降低了對開發(fā)人員的要求。
[0265]圖5示例性示出了本發(fā)明實施例提供另一種Docker容器運行裝置的結(jié)構(gòu)示意圖。
[0266]基于相同構(gòu)思,本發(fā)明實施例提供另一種Docker容器運行裝置530,如圖5所示,包括收發(fā)器510、處理器500、存儲器520:
[0267]處理器,用于讀取存儲器中的程序,運行下列過程:
[0268]通過收發(fā)器接收用于指示運行待執(zhí)行應用對應的Docker容器的執(zhí)行命令;其中,執(zhí)行命令中包括待執(zhí)行應用的標識;
[0269]處理器,用于根據(jù)執(zhí)行命令中包括的待執(zhí)行應用的標識,獲取待執(zhí)行應用的標識對應的虛擬機鏡像;從虛擬機鏡像中的所有層數(shù)據(jù)中讀出Docker容器對應的層數(shù)據(jù)和虛擬機鏡像的元數(shù)據(jù)信息;根據(jù)讀出的Docker容器對應的層數(shù)據(jù),生成Docker容器對應的快照層文件,將Docker容器對應的快照層文件掛載至工作目錄,并根據(jù)讀出的虛擬機鏡像的元數(shù)據(jù)信息進行環(huán)境配置;通過運行掛載至工作目錄的Docker容器對應的快照層文件,運行待執(zhí)行應用對應的Docker容器;
[0270]其中,Docker容器對應的層數(shù)據(jù)為用于運行待執(zhí)行應用對應的Docker容器所需要的層數(shù)據(jù);Docker容器對應的快照層文件包括Docker容器對應的層數(shù)據(jù)的快照;Docker容器對應的快照層文件為可讀可寫的層文件;
[0271]存儲器,用于存儲上述程序,以及待執(zhí)行應用的標識對應的虛擬機鏡像。
[0272]可選地,處理器,具體用于:
[0273]調(diào)用虛擬機鏡像驅(qū)動,并通過所調(diào)用的虛擬機鏡像驅(qū)動從虛擬機鏡像中的所有層數(shù)據(jù)中讀出Docker容器對應的層數(shù)據(jù)和虛擬機鏡像的元數(shù)據(jù)信息。
[0274]可選地,Docker容器對應的層數(shù)據(jù)包括:
[0275]虛擬機鏡像中的所有層數(shù)據(jù)中除內(nèi)核文件、系統(tǒng)目錄,以及根(boot)目錄下的文件之外的層數(shù)據(jù)。
[0276]可選地,處理器,具體用于:
[0277]根據(jù)讀出的待執(zhí)行應用對應的虛擬機鏡像的元數(shù)據(jù)信息,對系統(tǒng)參數(shù)進行配置,以使配置之后的系統(tǒng)參數(shù)與待執(zhí)行應用對應的虛擬機鏡像的元數(shù)據(jù)信息相匹配;
[0278]其中,系統(tǒng)參數(shù)為環(huán)境變量。
[0279]可選地,處理器,還用于:
[0280]基于虛擬機技術(shù),生成待執(zhí)行應用對應的虛擬機鏡像,并將虛擬機鏡像存儲于虛擬機鏡像存儲區(qū)域;
[0281 ]根據(jù)執(zhí)行命令中包括的待執(zhí)行應用的標識,從虛擬機鏡像存儲區(qū)域,獲取待執(zhí)行應用的標識對應的虛擬機鏡像。
[0282]從本發(fā)明實施例中,接收用于指示運行待執(zhí)行應用對應的Docker容器的執(zhí)行命令;其中,執(zhí)行命令中包括待執(zhí)行應用的標識;根據(jù)執(zhí)行命令中包括的待執(zhí)行應用的標識,獲取待執(zhí)行應用的標識對應的虛擬機鏡像;從虛擬機鏡像中的所有層數(shù)據(jù)中讀出Docker容器對應的層數(shù)據(jù)和虛擬機鏡像的元數(shù)據(jù)信息;其中,Docker容器對應的層數(shù)據(jù)為用于運行待執(zhí)行應用對應的Docker容器所需要的層數(shù)據(jù);根據(jù)讀出的Docker容器對應的層數(shù)據(jù),生成Docker容器對應的快照層文件,其中,Docker容器對應的快照層文件包括Docker容器對應的層數(shù)據(jù)的快照;Docker容器對應的快照層文件為可讀可寫的層文件;將Docker容器對應的快照層文件掛載至工作目錄,并根據(jù)讀出的虛擬機鏡像的元數(shù)據(jù)信息進行環(huán)境配置;通過運行掛載至工作目錄的Docker容器對應的快照層文件,運行待執(zhí)行應用對應的Docker容器。由于本發(fā)明實施例中可以從虛擬機鏡像中的所有層數(shù)據(jù)中讀出Docker容器對應的層數(shù)據(jù)和虛擬機鏡像的元數(shù)據(jù)信息,且Docker容器對應的層數(shù)據(jù)為用于運行待執(zhí)行應用對應的Docker容器所需要的層數(shù)據(jù),進而,可根據(jù)該讀出的Docker容器對應的層數(shù)據(jù)和虛擬機鏡像的元數(shù)據(jù)信息,運行待執(zhí)行應用對應的Docker容器??梢?,該過程簡便快捷,且避免了現(xiàn)有技術(shù)中使用人工的方式將待執(zhí)行應用的虛擬機鏡像轉(zhuǎn)換為容器鏡像的方法,也無需開發(fā)人員既要了解待執(zhí)行應用對應的虛擬機鏡像的整體部署,也要了解容器鏡像的構(gòu)建方法,可見,本發(fā)明實施例提供的方法能夠簡單高效的在Dcoker容器上運行之前在虛擬機中構(gòu)建的應用,且降低了對開發(fā)人員的要求。
[0283]圖6示例性示出了本發(fā)明實施例提供的另一種Docker容器的運行裝置的結(jié)構(gòu)示意圖。
[0284]基于相同構(gòu)思,本發(fā)明實施例提供的另一種Docker容器的運行裝置630,如圖6所示,包括收發(fā)器610、處理器600、存儲器620:
[0285]處理器,用于讀取存儲器中的程序,運行下列過程:
[0286]通過收發(fā)器接收用于指示運行待執(zhí)行應用對應的Docker容器的執(zhí)行命令;其中,執(zhí)行命令中包括待執(zhí)行應用的標識;
[0287]處理器,用于根據(jù)執(zhí)行命令中包括的待執(zhí)行應用的標識,獲取待執(zhí)行應用的標識對應的虛擬機鏡像;從虛擬機鏡像中讀出所有層數(shù)據(jù)和虛擬機鏡像的元數(shù)據(jù)信息;根據(jù)讀出的所有層數(shù)據(jù),生成所有層數(shù)據(jù)對應的快照層文件;所有層數(shù)據(jù)對應的快照層文件為可讀可寫的層文件;將所有層數(shù)據(jù)對應的快照層文件掛載至第一工作目錄;從掛載至第一工作目錄的所有層數(shù)據(jù)對應的快照層文件中,刪除Docker容器對應的層數(shù)據(jù)之外的層數(shù)據(jù);將進行刪除操作之后的所有層數(shù)據(jù)對應的快照層文件中剩余的層文件,以及虛擬機鏡像的元數(shù)據(jù)信息進行打包,得到預處理鏡像;根據(jù)預處理鏡像,生成容器鏡像的元數(shù)據(jù)信息;其中,容器鏡像的元數(shù)據(jù)信息包括預處理鏡像的格式信息;將預處理鏡像和容器鏡像的元數(shù)據(jù)信息打包,得到待執(zhí)行應用的標識對應的容器鏡像;其中,Docker容器對應的層數(shù)據(jù)為用于運行待執(zhí)行應用對應的Docker容器所需要的層數(shù)據(jù);通過運行待執(zhí)行應用的標識對應的容器鏡像,運行待執(zhí)行應用對應的Docker容器;
[0288]存儲器,用于存儲上述程序,以及待執(zhí)行應用的標識對應的虛擬機鏡像和容器鏡像。
[0289]可選地,處理器,具體用于:
[0290]調(diào)用虛擬機鏡像驅(qū)動,并通過所調(diào)用的虛擬機鏡像驅(qū)動從虛擬機鏡像中讀出所有層數(shù)據(jù)和虛擬機鏡像的元數(shù)據(jù)信息。
[0291 ] 可選地,Docker容器對應的層數(shù)據(jù)包括:
[0292]虛擬機鏡像中的所有層數(shù)據(jù)中除內(nèi)核文件、系統(tǒng)目錄,以及根(boot)目錄下的文件之外的層數(shù)據(jù);
[0293]容器鏡像的元數(shù)據(jù)信息包括:預處理鏡像中信息的存放格式、存放位置,以及Docker容器對應的層數(shù)據(jù)中各個層數(shù)據(jù)之間的層次關(guān)系。
[0294]可選地,處理器,還用于:
[0295]將待執(zhí)行應用的標識對應的容器鏡像存儲于容器鏡像存儲區(qū)域;
[0296]刪除所有層數(shù)據(jù)對應的快照層文件,卸載待執(zhí)行應用的標識對應的虛擬機鏡像。
[0297]可選地,處理器,具體用于:
[0298]從容器鏡像中讀出Docker容器對應的層數(shù)據(jù)和容器鏡像的元數(shù)據(jù)信息;其中,Docker容器對應的層數(shù)據(jù)為用于運行待執(zhí)行應用對應的Docker容器所需要的層數(shù)據(jù);
[0299]根據(jù)讀出的Docker容器對應的層數(shù)據(jù),生成Docker容器對應的快照層文件,其中,Docker容器對應的快照層文件包括Docker容器對應的層數(shù)據(jù)的快照;Docker容器對應的快照層文件為可讀可寫的層文件;
[0300]將Docker容器對應的快照層文件掛載至第二工作目錄,并根據(jù)讀出的容器鏡像的元數(shù)據(jù)信息進行環(huán)境配置;
[0301]通過運行掛載至第二工作目錄的快照層文件,運行待執(zhí)行應用對應的Docker容器。
[0302]可選地,處理器,具體用于:
[0303]調(diào)用容器鏡像驅(qū)動,并通過所調(diào)用的容器鏡像驅(qū)動從容器鏡像中讀出Docker容器對應的層數(shù)據(jù)和容器鏡像的元數(shù)據(jù)信息。
[0304]可選地,處理器,具體用于:
[0305]根據(jù)讀出的待執(zhí)行應用對應的容器鏡像中的元數(shù)據(jù)信息,對系統(tǒng)參數(shù)進行配置,以使配置之后的系統(tǒng)參數(shù)與待執(zhí)行應用對應的容器鏡像中的元數(shù)據(jù)信息相匹配;
[0306]其中,系統(tǒng)參數(shù)為環(huán)境變量。
[0307]可選地,處理器,還用于:
[0308]基于虛擬機技術(shù),生成待執(zhí)行應用的標識對應的虛擬機鏡像,并將待執(zhí)行應用的標識對應的虛擬機鏡像存儲于虛擬機鏡像存儲區(qū)域;
[0309]根據(jù)執(zhí)行命令中包括的待執(zhí)行應用的標識,從虛擬機鏡像存儲區(qū)域,獲取待執(zhí)行應用的標識對應的虛擬機鏡像。
[0310]從上述內(nèi)容可看出,本發(fā)明實施例中接收用于指示運行待執(zhí)行應用對應的Docker容器的執(zhí)行命令;其中,執(zhí)行命令中包括待執(zhí)行應用的標識;根據(jù)執(zhí)行命令中包括的待執(zhí)行應用的標識,獲取待執(zhí)行應用的標識對應的虛擬機鏡像;從虛擬機鏡像中讀出所有層數(shù)據(jù)和虛擬機鏡像的元數(shù)據(jù)信息;根據(jù)讀出的所有層數(shù)據(jù),生成所有層數(shù)據(jù)對應的快照層文件;所有層數(shù)據(jù)對應的快照層文件為可讀可寫的層文件;將所有層數(shù)據(jù)對應的快照層文件掛載至第一工作目錄;從掛載至第一工作目錄的所有層數(shù)據(jù)對應的快照層文件中,刪除Docker容器對應的層數(shù)據(jù)之外的層數(shù)據(jù);其中,Docker容器對應的層數(shù)據(jù)為用于運行待執(zhí)行應用對應的Docker容器所需要的層數(shù)據(jù);將進行刪除操作之后的所有層數(shù)據(jù)對應的快照層文件中剩余的層文件,以及虛擬機鏡像的元數(shù)據(jù)信息進行打包,得到預處理鏡像;根據(jù)預處理鏡像,生成容器鏡像的元數(shù)據(jù)信息;其中,容器鏡像的元數(shù)據(jù)信息包括預處理鏡像的格式信息;將預處理鏡像和容器鏡像的元數(shù)據(jù)信息打包,得到待執(zhí)行應用的標識對應的容器鏡像;通過運行待執(zhí)行應用的標識對應的容器鏡像,運行待執(zhí)行應用對應的Docker容器。由于本發(fā)明實施例中可以從虛擬機鏡像中的所有層數(shù)據(jù)中讀出Docker容器對應的層數(shù)據(jù)和虛擬機鏡像的元數(shù)據(jù)信息,且Docker容器對應的層數(shù)據(jù)為用于運行待執(zhí)行應用對應的Docker容器所需要的層數(shù)據(jù),進而,可根據(jù)該讀出的Docker容器對應的層數(shù)據(jù)和虛擬機鏡像的元數(shù)據(jù)信息,運行待執(zhí)行應用對應的Docker容器??梢?,該過程簡便快捷,且避免了現(xiàn)有技術(shù)中使用人工的方式將待執(zhí)行應用的虛擬機鏡像轉(zhuǎn)換為容器鏡像的方法,也無需開發(fā)人員既要了解待執(zhí)行應用對應的虛擬機鏡像的整體部署,也要了解容器鏡像的構(gòu)建方法,可見,本發(fā)明實施例提供的方法能夠簡單高效的在Dcoker容器上運行之前在虛擬機中構(gòu)建的應用,且降低了對開發(fā)人員的要求。
[0311]本領(lǐng)域內(nèi)的技術(shù)人員應明白,本發(fā)明的實施例可提供為方法、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
[0312]本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器運行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0313]這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0314]這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上運行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上運行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0315]盡管已描述了本發(fā)明的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。
[0316]顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技