欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種容器創(chuàng)建方法和裝置與流程

文檔序號:11199045閱讀:1382來源:國知局
一種容器創(chuàng)建方法和裝置與流程

本公開涉及網(wǎng)絡技術(shù)領(lǐng)域,特別涉及一種容器創(chuàng)建方法和裝置。



背景技術(shù):

容器技術(shù)是一種操作系統(tǒng)層虛擬化技術(shù),可以將應用軟件系統(tǒng)打包成一個軟件容器,內(nèi)含應用本身的代碼及其所需要的操作系統(tǒng)核心和庫,通過命名空間技術(shù)和硬件資源隔離技術(shù)創(chuàng)造出應用獨立的沙箱運行環(huán)境。目前,隨著人工智能和圖像處理業(yè)務的發(fā)展和需求擴大,容器技術(shù)也逐步應用于企業(yè)高性能計算領(lǐng)域方面的工作。例如,在高性能計算領(lǐng)域,容器中運行的應用有時需要使用某個物理設備,那么為了使得能夠使用該物理設備,創(chuàng)建的容器中需要包括該物理設備的信息,比如,可以是設備的驅(qū)動,否則容器就無法使用該設備。

現(xiàn)有技術(shù)的其中一種方式,可以將設備的驅(qū)動直接安裝在容器中,每個容器中都要安裝該驅(qū)動,但是這種方式在驅(qū)動版本升級時,所有的容器和鏡像都要更新,而且還需要獲取更新時所需要的設備信息,操作非常繁瑣,而且還會對容器中的業(yè)務運行造成影響。



技術(shù)實現(xiàn)要素:

有鑒于此,本公開提供一種容器創(chuàng)建方法和裝置,以使得容器對設備的使用實現(xiàn)更加靈活和方便,并減小設備更新對容器業(yè)務的影響。

具體地,本公開是通過如下技術(shù)方案實現(xiàn)的:

第一方面,提供一種容器創(chuàng)建方法,所述方法應用于攜帶目標設備的容器的創(chuàng)建,所述方法包括:

接收用于創(chuàng)建容器的容器引擎發(fā)送的插件觸發(fā)請求;

根據(jù)所述觸發(fā)請求,獲取所述目標設備的設備信息和驅(qū)動;

將所述設備信息和驅(qū)動返回給所述容器引擎,以使得所述容器引擎創(chuàng)建攜帶所述目標設備的容器。

第二方面,提供一種容器創(chuàng)建方法,所述方法應用于攜帶目標設備的容器的創(chuàng)建,所述方法包括:

向容器插件發(fā)送插件觸發(fā)請求,所述插件觸發(fā)請求用于觸發(fā)所述容器插件獲取所述目標設備的設備信息和驅(qū)動;

接收所述容器插件返回的所述設備信息和驅(qū)動;

使用所述設備信息和驅(qū)動,創(chuàng)建攜帶所述目標設備的容器。

第三方面,提供一種容器創(chuàng)建裝置,所述裝置應用于攜帶目標設備的容器的創(chuàng)建,所述裝置包括:

觸發(fā)接收模塊,用于接收用于創(chuàng)建容器的容器引擎發(fā)送的插件觸發(fā)請求;

信息獲取模塊,用于根據(jù)所述觸發(fā)請求,獲取目標設備的設備信息和驅(qū)動;

信息反饋模塊,用于將所述設備信息和驅(qū)動返回給所述容器引擎,以使得所述容器引擎創(chuàng)建攜帶所述目標設備的容器。

第四方面,提供一種容器創(chuàng)建裝置,所述裝置應用于攜帶目標設備的容器的創(chuàng)建,所述裝置包括:

請求發(fā)送模塊,用于向容器插件發(fā)送插件觸發(fā)請求,所述插件觸發(fā)請求用于觸發(fā)所述容器插件獲取所述目標設備的設備信息和驅(qū)動;

信息接收模塊,用于接收所述容器插件返回的所述設備信息和驅(qū)動;

容器創(chuàng)建模塊,用于使用所述設備信息和驅(qū)動,創(chuàng)建攜帶目標設備的容器。

第五方面,提供一種計算機可讀存儲介質(zhì),所述介質(zhì)上存儲有計算機指令,該指令被處理器執(zhí)行時實現(xiàn)以下步驟:

接收用于創(chuàng)建容器的容器引擎發(fā)送的插件觸發(fā)請求;

根據(jù)所述觸發(fā)請求,獲取所述目標設備的設備信息和驅(qū)動;

將所述設備信息和驅(qū)動返回給所述容器引擎,以使得所述容器引擎創(chuàng)建攜帶所述目標設備的容器。

第六方面,提供一種處理設備,所述處理設備中安裝有目標設備,所述處理設備包括存儲器、處理器,以及存儲在存儲器上并可在處理器上運行的計算機指令,所述計算機指令包括:用于實現(xiàn)容器插件的插件指令、以及用于實現(xiàn)容器引擎的引擎指令;

所述處理器通過執(zhí)行所述插件指令,用于實現(xiàn)如下步驟:接收用于創(chuàng)建容器的容器引擎發(fā)送的插件觸發(fā)請求;根據(jù)所述觸發(fā)請求,獲取所述目標設備的設備信息和驅(qū)動;將所述設備信息和驅(qū)動返回給所述容器引擎;

所述處理器通過執(zhí)行所述引擎指令,用于實現(xiàn)如下步驟:向容器插件發(fā)送插件觸發(fā)請求,所述插件觸發(fā)請求用于觸發(fā)所述容器插件獲取所述目標設備的設備信息和驅(qū)動;接收所述容器插件返回的設備信息和驅(qū)動;使用所述設備信息和驅(qū)動,創(chuàng)建攜帶所述目標設備的容器。

本公開的容器創(chuàng)建方法和裝置,當容器引擎創(chuàng)建容器時,可以自動觸發(fā)本公開的容器插件代為收集目標設備的設備信息和驅(qū)動,這樣使得對于容器創(chuàng)建時所需信息的獲取更為快速和方便,并且,插件化的方式對容器中的業(yè)務不會產(chǎn)生影響。

附圖說明

圖1是本公開實施例提供的一個容器的應用場景;

圖2是本公開實施例提供的一個容器創(chuàng)建流程圖;

圖3是本公開實施例提供的一個容器插件的結(jié)構(gòu)示意圖;

圖4是本公開實施例提供的容器插件第一階段的工作流程圖;

圖5是本公開實施例提供的容器插件第二階段的工作流程圖;

圖6是本公開實施例提供的容器插件第三階段的工作流程圖;

圖7是本公開實施例提供的驅(qū)動設備查詢器的結(jié)構(gòu)示意圖;

圖8是本公開實施例提供的一種容器創(chuàng)建裝置的結(jié)構(gòu)示意圖;

圖9是本公開實施例提供的一種容器創(chuàng)建裝置的結(jié)構(gòu)示意圖;

圖10是本公開實施例提供的一種容器創(chuàng)建裝置的結(jié)構(gòu)示意圖。

具體實施方式

利用容器(container)技術(shù)可以為應用程序創(chuàng)造出一個獨立的沙箱運行環(huán)境,并不是像虛擬機那樣提供一套完整的操作系統(tǒng),例如,傳統(tǒng)虛擬機方式運行十個不同的應用就要起十個虛擬機,而容器技術(shù)只需要啟動十個隔離的應用即可,這十個應用分別位于不同的容器中。容器的啟動和運行效率較高,而且對系統(tǒng)資源的利用率很高,容器除了運行其中的應用程序外,基本不消耗額外的系統(tǒng)資源,一臺主機上可以同時運行數(shù)量很多的容器。正因為上述優(yōu)點,容器技術(shù)逐步應用于各個方面的工作。

圖1示例了一個容器的應用場景,如圖1所示,處理設備11例如可以是一個電腦、服務器等物理機器,或者也可以是一個運行在物理機器上的虛擬機,如下的描述中以物理機器為例。在處理設備11中可以安裝有至少一個硬件設備,在一個例子中,這些硬件設備可以是infiniband設備,infiniband是一種適用于高性能計算領(lǐng)域的計算機網(wǎng)絡通信標準,具有高吞吐、低延遲的傳輸特性,infiniband設備可以包括infiniband交換機和網(wǎng)絡互聯(lián)設備等。使用infiniband設備需要攜帶該設備的驅(qū)動,如圖1所示,處理設備11中包括物理機infiniband設備12(即安裝在物理機器形式的處理設備上的infiniband,以區(qū)分后續(xù)描述中出現(xiàn)的容器infiniband)和物理機infiniband驅(qū)動13(同理,以區(qū)分后續(xù)出現(xiàn)的容器驅(qū)動)。本例子中,可以將上述的infiniband設備稱為目標設備,此外,如下描述中以infiniband設備為例,但在其他的應用場景中也可以是其他硬件設備。

請繼續(xù)參見圖1,假設在該處理設備上創(chuàng)建并運行一個容器14,該容器14中的應用程序需要使用infiniband設備,以提高網(wǎng)絡吞吐量和網(wǎng)絡通信效率,那么容器14可以是一個“攜帶infiniband設備的容器(圖1示意為infiniband容器)”,即需要將infiniband設備掛載在容器14中,容器14還需要包括該infiniband設備的驅(qū)動,這樣才能夠正常使用infiniband設備。如圖1所示,容器14中包括容器infiniband設備和驅(qū)動,以通過這些共享實際的物理設備。

本公開的容器創(chuàng)建方法,即用于描述如何創(chuàng)建上述的容器14,并且使得該容器14中攜帶處理設備11中的infiniband設備及其驅(qū)動。如圖1所示,可以由容器引擎15負責創(chuàng)建容器,在一個例子中,例如,該容器引擎15可以是docker,docker是一個開源的應用容器引擎,讓開發(fā)者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的linux機器上,以期實現(xiàn)構(gòu)建一次,到處運行,即“buildonce,runanywhere”,docker可以使得應用程序部署在軟件容器下的工作自動化進行。當然,在其他的應用例子中,也可以使用其他的容器引擎,不限制于docker,本公開的后續(xù)例子中以docker為例進行描述。

以docker為例,docker可以提供一種擴展機制即docker插件,例如,docker可以支持volume插件。插件是一個獨立的進程,docker插件可以與docker運行在同一臺主機上,由docker進程進行插件觸發(fā)。本公開提供了一種插件,如圖1所示的容器插件16,由該容器插件16負責為容器的創(chuàng)建收集所需的infiniband設備信息和驅(qū)動,并返回給容器引擎15,以供容器引擎15創(chuàng)建容器。

圖2示例了本公開的容器創(chuàng)建流程,可以包括:

在步驟201中,容器引擎接收容器創(chuàng)建請求,所述容器創(chuàng)建請求用于請求創(chuàng)建攜帶目標設備的容器。

例如,如圖1所示,用戶調(diào)度程序可以向docker發(fā)送容器創(chuàng)建請求,調(diào)度docker進程創(chuàng)建一個攜帶infiniband設備的容器。

在步驟202中,容器引擎向容器插件發(fā)送插件觸發(fā)請求。

例如,docker進程接收到容器創(chuàng)建請求后,開始進入創(chuàng)建容器的流程。本步驟中,可以通過docker進程的volumedriver觸發(fā)本公開中的容器插件開始工作,相當于向容器插件發(fā)送插件觸發(fā)請求。

在步驟203中,容器插件根據(jù)所述觸發(fā)請求,獲取所述目標設備的設備信息和驅(qū)動。

例如,圖1中的容器插件16在偵聽到docker進程創(chuàng)建volume事件的觸發(fā)后,可以判斷觸發(fā)參數(shù)是否正確,比如可以是,觸發(fā)請求中攜帶的參數(shù)格式是否正確。若不符合要求則可以向docker返回創(chuàng)建volume事件失敗,否則,可以繼續(xù)獲取infiniband設備的設備信息和驅(qū)動,本例子中可以是獲取圖1中的物理機infiniband設備的設備信息以及物理機infiniband驅(qū)動。

在步驟204中,容器插件將設備信息和驅(qū)動返回給容器引擎。

本步驟中,圖1中的容器插件16可以將獲取到的infiniband設備的設備信息和驅(qū)動返回給docker。

在步驟205中,容器引擎使用所述設備信息和驅(qū)動,創(chuàng)建攜帶所述目標設備的容器。例如,docker可以根據(jù)設備信息和驅(qū)動,進行infiniband設備的設備掛載和目錄掛載。

本例子的容器創(chuàng)建方法是一種將設備信息和驅(qū)動的獲取設計為插件化的方法,插件化是一種靈活輕量的工作模式,具有插拔特性,通常插拔過程對主流程不構(gòu)成影響。本例子中,當容器引擎創(chuàng)建容器時,可以自動觸發(fā)本公開的容器插件代為收集目標設備的設備信息和驅(qū)動,這樣使得對于容器創(chuàng)建時所需信息的獲取更為快速和方便,并且,插件化的方式對容器中的業(yè)務不會產(chǎn)生影響。

此外,假設docker創(chuàng)建多個容器時,現(xiàn)有技術(shù)中可以將驅(qū)動直接安裝在各個容器中,當驅(qū)動版本更新時導致每個容器和鏡像都要隨之更新,而本例子的方法中,是由容器插件將驅(qū)動返回給創(chuàng)建容器的docker引擎,相當于多個容器共享一份驅(qū)動即可,docker在創(chuàng)建新容器時自動獲取插件返回的新版本驅(qū)動使用即可,非常方便。而且,容器插件可以將設備最新的驅(qū)動和設備信息返回至docker,可以使得docker兼容適配各個設備版本,由容器插件負責收集目標設備的驅(qū)動和設備信息,大大簡化了攜帶設備的容器的創(chuàng)建流程,使得容器對設備的使用實現(xiàn)更加靈活和方便。

在一個例子中,將進一步詳細描述圖1中的容器插件的結(jié)構(gòu)和工作過程。

如圖3所示,例如,本公開的容器插件可以包括三個模塊,分別為:插件擴展觸發(fā)模塊31、驅(qū)動和設備選擇模塊32、以及驅(qū)動和設備收集模塊33。例如,插件擴展觸發(fā)模塊31可以是dockervolume插件擴展觸發(fā)模塊。容器插件的工作過程可以由上述的三個模塊配合執(zhí)行,包括如下的三個階段:

第一階段:插件擴展觸發(fā)模塊的流程。

如圖4的示例,在步驟401中,插件擴展觸發(fā)模塊接收到插件觸發(fā)。

本步驟中,插件擴展觸發(fā)模塊可以偵聽是否要創(chuàng)建volume事件。當docker接收到容器創(chuàng)建請求時,可以觸發(fā)插件擴展觸發(fā)模塊創(chuàng)建volume事件。本例子中,插件擴展觸發(fā)模塊在接收到docker發(fā)送的創(chuàng)建volume事件的插件觸發(fā)請求后,可以繼續(xù)執(zhí)行402,否則,可以繼續(xù)偵聽。

在步驟402中,插件擴展觸發(fā)模塊判斷觸發(fā)參數(shù)是否正確。

若觸發(fā)參數(shù)正確,則可以在步驟403中觸發(fā)驅(qū)動和設備選擇模塊執(zhí)行下一階段的流程;否則,可以在步驟404中向docker返回創(chuàng)建volume事件失敗。

由圖4的流程可以看到,本例子的容器插件中的插件擴展觸發(fā)模塊,可以主要負責判斷是否接收到docker的插件觸發(fā),是否要創(chuàng)建volume事件,即負責確定本容器插件是否要開始獲取設備信息和驅(qū)動的流程。

第二階段:驅(qū)動和設備選擇模塊的流程。

如圖5的示例,在步驟501中,驅(qū)動和設備選擇模塊接收觸發(fā)請求。

本步驟中,驅(qū)動和設備選擇模塊接收到插件擴展觸發(fā)模塊的觸發(fā)。

在步驟502中,驅(qū)動和設備選擇模塊判斷用戶是否傳入了指定的驅(qū)動版本。

例如,用戶可以在調(diào)度docker創(chuàng)建容器時,在容器創(chuàng)建請求中就指定驅(qū)動版本,那么docker也會在向插件擴展觸發(fā)模塊發(fā)送插件觸發(fā)請求時,攜帶上所述指定的驅(qū)動版本,同樣,插件擴展觸發(fā)模塊在觸發(fā)驅(qū)動和設備選擇模塊時,可以將用戶指定的驅(qū)動版本傳給驅(qū)動和設備選擇模塊。

本步驟中,若判斷結(jié)果為否,即用戶沒有傳入驅(qū)動版本,則可以直接執(zhí)行步驟505,觸發(fā)驅(qū)動和設備收集模塊33進行驅(qū)動收集,當然,該驅(qū)動和設備收集模塊33也會收集設備信息。如果判斷結(jié)果為是,即用戶傳入了指定的驅(qū)動版本,則可以執(zhí)行步驟503。

在步驟503中,驅(qū)動和設備選擇模塊調(diào)用驅(qū)動和設備收集模塊查詢驅(qū)動。

在步驟504中,判斷指定版本的驅(qū)動是否存在。

本步驟中,可以是向驅(qū)動和設備收集模塊查詢是否存在所述指定的驅(qū)動版本,如不存在,可以執(zhí)行步驟506,否則,可以執(zhí)行步驟505。

在步驟505中,驅(qū)動和設備選擇模塊觸發(fā)驅(qū)動和設備收集模塊,以進入下一階段的流程,進行設備信息和驅(qū)動的收集。

在步驟506中,驅(qū)動和設備選擇模塊返回創(chuàng)建失敗,即驅(qū)動和設備選擇模塊向插件擴展觸發(fā)模塊返回失敗,繼而插件擴展觸發(fā)模塊向docker返回失敗。

由圖5的流程可以看到,本例子的容器插件中的驅(qū)動和設備選擇模塊,可以主要負責判斷是否要繼續(xù)觸發(fā)設備信息和驅(qū)動的收集獲取,如果指定版本的驅(qū)動并不存在,則不用繼續(xù)收集,直接向docker返回失敗即可,如果指定驅(qū)動存在或者未指定驅(qū)動,則可以觸發(fā)設備信息和驅(qū)動的收集。

第三階段:驅(qū)動和設備收集模塊的流程。

如圖6的示例,在步驟601中,驅(qū)動和設備收集模塊接收觸發(fā)請求。

本步驟中,驅(qū)動和設備收集模塊接收到驅(qū)動和設備選擇模塊的觸發(fā)。

在步驟602中,驅(qū)動和設備收集模塊判斷是否帶有指定的驅(qū)動版本。

如果判斷結(jié)果為否,即不帶驅(qū)動版本,用戶未指定,則可以執(zhí)行步驟604;否則,若判斷結(jié)果為是,則可以執(zhí)行步驟603。

在步驟603中,驅(qū)動和設備收集模塊判斷指定版本的驅(qū)動在緩存中是否存在。若存在,則執(zhí)行步驟604;否則,可以執(zhí)行步驟605。

在步驟604中,驅(qū)動和設備收集模塊由緩存中獲取最新的所述設備信息和驅(qū)動。本步驟中,獲取設備信息和驅(qū)動后,驅(qū)動和設備收集模塊可以將設備信息和驅(qū)動返回給驅(qū)動和設備選擇模塊,驅(qū)動和設備選擇模塊將設備信息和驅(qū)動返回給插件擴展觸發(fā)模塊,最終由插件擴展觸發(fā)模塊返回給docker進行攜帶infiniband設備的容器的創(chuàng)建。

在步驟605中,驅(qū)動和設備收集模塊判斷是否首次收集該版本驅(qū)動。

若非首次收集,則說明該驅(qū)動不存在,可以直接執(zhí)行步驟608;若是首次收集,則可以執(zhí)行步驟606。

在步驟606中,驅(qū)動和設備收集模塊調(diào)用驅(qū)動設備查詢器收集設備信息和驅(qū)動。該驅(qū)動設備查詢器的結(jié)構(gòu)和工作原理,后續(xù)例子描述。

在步驟607中,驅(qū)動和設備收集模塊在接收到驅(qū)動設備查詢器返回的設備信息和驅(qū)動后,更新緩存中的驅(qū)動和設備信息。

本步驟中更新緩存后,驅(qū)動和設備收集模塊可以返回步驟603,再次判斷指定版本驅(qū)動是否在緩存中,若還是不存在,則依據(jù)上述流程描述,將返回失敗,當然還可以是依次經(jīng)由上述的驅(qū)動和設備選擇模塊、插件擴展觸發(fā)模塊,最終返回失敗給docker;若再次判斷時已經(jīng)存在,則依據(jù)上述流程描述,則將設備信息和驅(qū)動返回給docker即可。

在步驟608中,驅(qū)動和設備收集模塊返回創(chuàng)建失敗。

由圖6的流程可以看到,本例子的容器插件中的驅(qū)動和設備收集模塊,可以主要負責具體的設備信息和驅(qū)動的收集獲取,而且可以是優(yōu)先由緩存中獲取,緩存中沒有時可以調(diào)用驅(qū)動設備查詢器獲取。

在一個例子中,上述提到的驅(qū)動設備查詢器,可以作為驅(qū)動和設備收集模塊的一部分,主要負責獲取容器插件所在的處理設備上的目標設備的設備信息和驅(qū)動。圖7示例了該驅(qū)動設備查詢器的結(jié)構(gòu),如圖7所示,可以包括:版本維護器71、驅(qū)動信息管理器72、設備信息管理器73和物理設備調(diào)用器74。

例如,版本維護器71中可以維護有不同版本的infiniband設備的設備信息和驅(qū)動。并且,該版本維護器71中還可以維護不同版本的infiniband設備對應的驅(qū)動信息映射鍵和設備信息映射鍵,通過映射鍵可以查詢驅(qū)動信息管理器72、設備信息管理器73,在驅(qū)動信息管理器72中存儲有驅(qū)動的描述和獲取方式,設備信息管理器73存儲有設備信息的描述和獲取方式。

當驅(qū)動設備查詢器接收到調(diào)用請求后,可以先查詢請求獲取的驅(qū)動和設備信息是否存儲在版本維護器71中。如果存在,則可以直接返回給驅(qū)動和設備收集模塊;如果不存在,可以通過該版本的映射鍵,查詢驅(qū)動信息管理器72和設備信息管理器73,得到設備信息和驅(qū)動的獲取方式。接著,可以通過物理設備調(diào)用器74(例如,infiniband物理設備調(diào)用器)根據(jù)所述的獲取方式,獲得具體的設備信息和驅(qū)動。并且,還可以將獲取到的設備信息和驅(qū)動存儲至所述版本維護器71中,下次就可以直接由版本維護器71中獲取。

本例子中,驅(qū)動和設備收集模塊中可以自動運行一個定時器,定時調(diào)用驅(qū)動設備查詢器來進行驅(qū)動的定時檢查和更新,以保證物理驅(qū)動更新后能夠同步至容器插件中。這樣用戶創(chuàng)建容器時可以無需關(guān)心驅(qū)動版本和設備,最合適的驅(qū)動文件會靈活地注入容器內(nèi)部、相應的設備會自動掛載至容器內(nèi)。同時,通過驅(qū)動設備查詢器查詢當前處理設備使用的目標設備的版本,可以做到兼容和適配各種版本的infiniband設備。

為了實現(xiàn)本公開的容器創(chuàng)建方法,本公開還提供了一種容器創(chuàng)建裝置,該裝置可以應用于攜帶目標設備的容器的創(chuàng)建,該裝置可以應用于容器插件。如圖8所示,該裝置可以包括:觸發(fā)接收單元81、信息獲取單元82和信息反饋單元83。其中,需要說明的是,上述的三個單元可以是容器創(chuàng)建裝置在邏輯功能上的劃分,實際的裝置結(jié)構(gòu)設計中包括這三個單元對應的邏輯功能即可,不一定嚴格按照這三個單元的劃分來設計。例如,圖3的容器插件中,插件擴展觸發(fā)模塊可以相當于上述的觸發(fā)接收單元81,可以實現(xiàn)觸發(fā)接收單元81對應的邏輯功能;而信息獲取單元82的邏輯功能可以由圖3的驅(qū)動和設備選擇模塊、驅(qū)動和設備收集模塊功能實現(xiàn)。

觸發(fā)接收單元81,用于接收用于創(chuàng)建容器的容器引擎發(fā)送的插件觸發(fā)請求;

信息獲取單元82,用于根據(jù)觸發(fā)請求,獲取目標設備的設備信息和驅(qū)動;

信息反饋單元83,用于將所述設備信息和驅(qū)動返回給所述容器引擎,以使得所述容器引擎創(chuàng)建攜帶所述目標設備的容器。

在一個例子中,如圖9所示,所述信息獲取單元82,包括:

版本判斷子單元821,用于判斷插件觸發(fā)請求中是否包括指定的驅(qū)動版本;

信息收集子單元822,用于當判斷結(jié)果為否,或者判斷結(jié)果為是且確定所述驅(qū)動版本的驅(qū)動存在時,收集所述設備信息和驅(qū)動。

在一個例子中,信息收集子單元822,具體用于:當判斷結(jié)果為否時,則由緩存中獲取最新的所述設備信息和驅(qū)動;當判斷結(jié)果為是,且確定所述驅(qū)動版本的驅(qū)動在所述緩存中存在時,則獲取所述緩存中的設備信息和驅(qū)動;當判斷結(jié)果為是,且確定所述驅(qū)動版本的驅(qū)動在緩存中不存在并且是首次收集時,則調(diào)用驅(qū)動設備查詢器收集所述設備信息和驅(qū)動,并將收集到的設備信息和驅(qū)動放入所述緩存。

在一個例子中,信息收集子單元822,在用于調(diào)用驅(qū)動設備查詢器收集所述設備信息和驅(qū)動,并將收集到的設備信息和驅(qū)動放入所述緩存時,包括:查詢所述驅(qū)動設備查詢器的版本維護器中是否存儲所述設備信息和驅(qū)動;若不存在,則由維護的信息管理器中獲取所述設備信息和驅(qū)動的獲取方式,并由物理設備調(diào)用器根據(jù)所述獲取方式獲得所述設備信息和驅(qū)動;將所述設備信息和驅(qū)動存儲至所述版本維護器。

為了實現(xiàn)本公開的容器創(chuàng)建方法,本公開還提供了一種容器創(chuàng)建裝置,該裝置可以應用于攜帶目標設備的容器的創(chuàng)建,該裝置可以應用于容器引擎。如圖10所示,該裝置可以包括:請求發(fā)送模塊1001、信息接收模塊1002和容器創(chuàng)建模塊1003。

請求發(fā)送模塊1001,用于向容器插件發(fā)送插件觸發(fā)請求,所述插件觸發(fā)請求用于觸發(fā)所述容器插件獲取所述目標設備的設備信息和驅(qū)動;

信息接收模塊1002,用于接收所述容器插件返回的所述設備信息和驅(qū)動;

容器創(chuàng)建模塊1003,用于使用設備信息和驅(qū)動,創(chuàng)建攜帶目標設備的容器。

上述實施例闡明的裝置或模塊,具體可以由計算機芯片或?qū)嶓w實現(xiàn),或者由具有某種功能的產(chǎn)品來實現(xiàn)。一種典型的實現(xiàn)設備為計算機,計算機的具體形式可以是個人計算機、膝上型計算機、蜂窩電話、相機電話、智能電話、個人數(shù)字助理、媒體播放器、導航設備、電子郵件收發(fā)設備、游戲控制臺、平板計算機、可穿戴設備或者這些設備中的任意幾種設備的組合。

為了描述的方便,描述以上裝置時以功能分為各種模塊分別描述。當然,在實施本公開時可以把各模塊的功能在同一個或多個軟件和/或硬件中實現(xiàn)。

本領(lǐng)域內(nèi)的技術(shù)人員應明白,本公開的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本公開可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本公開可采用在一個或多個其中包含有計算機指令的計算機可讀存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。

這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。例如,所述介質(zhì)上存儲的計算機指令被處理器執(zhí)行時可以實現(xiàn)以下步驟:接收用于創(chuàng)建容器的容器引擎發(fā)送的插件觸發(fā)請求;根據(jù)所述觸發(fā)請求,獲取所述目標設備的設備信息和驅(qū)動;將所述設備信息和驅(qū)動返回給所述容器引擎,以使得所述容器引擎創(chuàng)建攜帶所述目標設備的容器。

在一個典型的配置中,本公開中的處理設備還可以包括一個或多個處理器(cpu)、存儲器,以及存儲在存儲器上并可在處理器上運行的計算機指令,所述計算機指令包括:用于實現(xiàn)容器插件的插件指令、以及用于實現(xiàn)容器引擎的引擎指令。

所述處理器通過執(zhí)行所述插件指令,用于實現(xiàn)如下步驟:接收用于創(chuàng)建容器的容器引擎發(fā)送的插件觸發(fā)請求;根據(jù)所述觸發(fā)請求,獲取所述目標設備的設備信息和驅(qū)動;將所述設備信息和驅(qū)動返回給所述容器引擎;

所述處理器通過執(zhí)行所述引擎指令,用于實現(xiàn)如下步驟:向容器插件發(fā)送插件觸發(fā)請求,所述插件觸發(fā)請求用于觸發(fā)所述容器插件獲取所述目標設備的設備信息和驅(qū)動;接收所述容器插件返回的設備信息和驅(qū)動;使用所述設備信息和驅(qū)動,創(chuàng)建攜帶所述目標設備的容器。

以上所述僅為本公開的較佳實施例而已,并不用以限制本公開,凡在本公開的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本公開保護的范圍之內(nèi)。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
容城县| 格尔木市| 麻栗坡县| 科技| 塔河县| 上杭县| 临江市| 辽阳市| 雅安市| 阳高县| 平邑县| 阿拉善盟| 云梦县| 逊克县| 林西县| 探索| 莱西市| 壶关县| 正阳县| 登封市| 浏阳市| 信丰县| 普兰县| 新龙县| 铜陵市| 雅安市| 攀枝花市| 板桥市| 华阴市| 临洮县| 左权县| 巫山县| 长沙县| 勃利县| 肇州县| 都匀市| 呈贡县| 噶尔县| 清水县| 台东县| 淮北市|