本發(fā)明涉及計(jì)算機(jī)軟件技術(shù)領(lǐng)域,尤其涉及一種docker容器啟動(dòng)方法及裝置。
背景技術(shù):
由于docker鏡像采用分層加載的技術(shù),最上層為可讀寫的層;對(duì)于docker來說,容器可以認(rèn)為是已經(jīng)運(yùn)行過的或正在運(yùn)行的鏡像,即在鏡像上添加了改動(dòng)層。
而在容器的實(shí)際啟動(dòng)過程中,docker需要為該層進(jìn)行虛擬磁盤設(shè)備創(chuàng)建、文件系統(tǒng)創(chuàng)建、掛載、運(yùn)行時(shí)配置寫入、啟動(dòng)進(jìn)程等一系列操作,而這一系列的操作將會(huì)影響啟動(dòng)容器的速度,導(dǎo)致其啟動(dòng)緩慢。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明提供了一種docker容器啟動(dòng)方法及裝置,以解決現(xiàn)有技術(shù)中容器啟動(dòng)緩慢的問題。
為實(shí)現(xiàn)上述目的,本申請(qǐng)?zhí)峁┑募夹g(shù)方案如下:
一種docker容器啟動(dòng)方法,包括:
根據(jù)接收的啟動(dòng)容器請(qǐng)求,判斷各個(gè)預(yù)容器中是否存在與待啟動(dòng)容器所需要的鏡像相對(duì)應(yīng)的預(yù)容器;其中,所述各個(gè)預(yù)容器是在接收所述啟動(dòng)容器請(qǐng)求之前為根據(jù)預(yù)設(shè)規(guī)則選取的各個(gè)基礎(chǔ)鏡像所創(chuàng)建的,使相應(yīng)基礎(chǔ)鏡像掛載有可寫層文件系統(tǒng);
若所述各個(gè)預(yù)容器中存在所述相對(duì)應(yīng)的預(yù)容器,則基于所述相對(duì)應(yīng)的預(yù)容器,啟動(dòng)所述待啟動(dòng)容器。
優(yōu)選的,所述預(yù)設(shè)規(guī)則為:
依據(jù)使用時(shí)間排序,以最近使用的第一預(yù)設(shè)個(gè)數(shù)的鏡像作為選取對(duì)象;
和/或,
依據(jù)下載時(shí)間排序,以最近下載的第二預(yù)設(shè)個(gè)數(shù)的鏡像作為選取對(duì)象。
優(yōu)選的,所述各個(gè)預(yù)容器的創(chuàng)建過程,包括:
為所述各個(gè)基礎(chǔ)鏡像分別創(chuàng)建虛擬磁盤設(shè)備;
在所述虛擬磁盤設(shè)備上創(chuàng)建文件系統(tǒng);
將創(chuàng)建好的文件系統(tǒng)以寫時(shí)復(fù)制的方式掛載到相應(yīng)基礎(chǔ)鏡像提供的文件系統(tǒng)上,作為所述可寫層文件系統(tǒng)。
優(yōu)選的,所述啟動(dòng)所述待啟動(dòng)容器,包括:
對(duì)所述可寫層文件系統(tǒng)進(jìn)行運(yùn)行時(shí)配置寫入操作;
及啟動(dòng)進(jìn)程操作。
一種docker容器啟動(dòng)裝置,包括:
選取單元,用于根據(jù)預(yù)設(shè)規(guī)則選取基礎(chǔ)鏡像;
預(yù)容器創(chuàng)建單元,用于在接收啟動(dòng)容器請(qǐng)求之前為所述基礎(chǔ)鏡像創(chuàng)建預(yù)容器,使所述基礎(chǔ)鏡像掛載有可寫層文件系統(tǒng);
判斷單元,用于根據(jù)接收的所述啟動(dòng)容器請(qǐng)求,判斷各個(gè)預(yù)容器中是否存在與待啟動(dòng)容器所需要的鏡像相對(duì)應(yīng)的預(yù)容器;
啟動(dòng)單元,用于若各個(gè)預(yù)容器中是否存在所述相對(duì)應(yīng)的預(yù)容器,則基于所述相對(duì)應(yīng)的預(yù)容器,啟動(dòng)所述待啟動(dòng)容器。
優(yōu)選的,所述預(yù)設(shè)規(guī)則為:
依據(jù)使用時(shí)間排序,以最近使用的第一預(yù)設(shè)個(gè)數(shù)的鏡像作為選取對(duì)象;
和/或,
依據(jù)下載時(shí)間排序,以最近下載的第二預(yù)設(shè)個(gè)數(shù)的鏡像作為選取對(duì)象。
優(yōu)選的,所述預(yù)容器創(chuàng)建單元用于為所述基礎(chǔ)鏡像創(chuàng)建預(yù)容器時(shí),具體用于:
為所述各個(gè)基礎(chǔ)鏡像分別創(chuàng)建虛擬磁盤設(shè)備;
在所述虛擬磁盤設(shè)備上創(chuàng)建文件系統(tǒng);
將創(chuàng)建好的文件系統(tǒng)以寫時(shí)復(fù)制的方式掛載到相應(yīng)基礎(chǔ)鏡像提供的文件系統(tǒng)上,作為所述可寫層文件系統(tǒng)。
優(yōu)選的,所述啟動(dòng)單元用于啟動(dòng)所述待啟動(dòng)容器時(shí),具體用于:
對(duì)所述可寫層文件系統(tǒng)進(jìn)行運(yùn)行時(shí)配置寫入操作;
及啟動(dòng)進(jìn)程操作。
由上述方案可知,本發(fā)明提供的docker容器啟動(dòng)方法,在接收到啟動(dòng)容器請(qǐng)求之前,為根據(jù)預(yù)設(shè)規(guī)則所選取的基礎(chǔ)鏡像創(chuàng)建預(yù)容器,使相應(yīng)基礎(chǔ)鏡像掛載有可寫層文件系統(tǒng);當(dāng)接收到啟動(dòng)容器請(qǐng)求之后,若已創(chuàng)建的各個(gè)預(yù)容器中存在與待啟動(dòng)容器所需要的鏡像相對(duì)應(yīng)的預(yù)容器,則基于該相對(duì)應(yīng)的預(yù)容器,啟動(dòng)待啟動(dòng)容器。根據(jù)對(duì)于基礎(chǔ)鏡像的適當(dāng)選取,并為其創(chuàng)建容器啟動(dòng)過程中需要用到的預(yù)容器,能夠?qū)赡芤獑?dòng)的容器進(jìn)行預(yù)先準(zhǔn)備,節(jié)約容器的啟動(dòng)時(shí)間,加快容器的啟動(dòng)速度。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明第一實(shí)施例提供的docker容器啟動(dòng)方法的流程圖;
圖2為本發(fā)明第一實(shí)施例提供的docker容器啟動(dòng)方法的另一流程圖;
圖3為本發(fā)明第二實(shí)施例提供的docker容器啟動(dòng)方法的流程圖;
圖4為本發(fā)明第三實(shí)施例提供的docker容器啟動(dòng)裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明提供了一種docker容器啟動(dòng)方法,以解決現(xiàn)有技術(shù)中容器啟動(dòng)緩慢的問題。
具體的,該docker容器啟動(dòng)方法,參見圖1,包括:
s101、根據(jù)接收的啟動(dòng)容器請(qǐng)求,判斷各個(gè)預(yù)容器中是否存在與待啟動(dòng)容器所需要的鏡像相對(duì)應(yīng)的預(yù)容器;
其中,各個(gè)預(yù)容器是在接收啟動(dòng)容器請(qǐng)求之前為各個(gè)基礎(chǔ)鏡像所創(chuàng)建的,以使相應(yīng)基礎(chǔ)鏡像掛載有可寫層文件系統(tǒng);而各個(gè)基礎(chǔ)鏡像是根據(jù)預(yù)設(shè)規(guī)則選取得到的。也就是說,在接收啟動(dòng)容器請(qǐng)求之前,首先需要根據(jù)特定的預(yù)設(shè)規(guī)則選取一部分鏡像作為基礎(chǔ)鏡像;然后,為各個(gè)基礎(chǔ)鏡像創(chuàng)建對(duì)應(yīng)的預(yù)容器,也即,采用空間換時(shí)間的思路,提前準(zhǔn)備好容器啟動(dòng)所需的預(yù)容器。
值得說明的是,本申請(qǐng)對(duì)于選取基礎(chǔ)鏡像和創(chuàng)建預(yù)容器的執(zhí)行時(shí)間并不做具體限定,只要在接收到啟動(dòng)容器請(qǐng)求之前即可;比如在本次容器啟動(dòng)之后,可以立即選取新的基礎(chǔ)鏡像并創(chuàng)建預(yù)容器;或者,也可以根據(jù)實(shí)際應(yīng)用環(huán)境,在本次容器啟動(dòng)之后到下次執(zhí)行docker容器啟動(dòng)方法之間的一定時(shí)間段內(nèi)進(jìn)行自主設(shè)置,此處不再一一贅述,均在本申請(qǐng)的保護(hù)范圍內(nèi)。
若各個(gè)預(yù)容器中存在該相對(duì)應(yīng)的預(yù)容器,則執(zhí)行步驟s102;
s102、基于該相對(duì)應(yīng)的預(yù)容器,啟動(dòng)該待啟動(dòng)容器。
當(dāng)接收到啟動(dòng)容器請(qǐng)求之后,若已創(chuàng)建的各個(gè)預(yù)容器中存在與該待啟動(dòng)容器所需要的鏡像相對(duì)應(yīng)的預(yù)容器,則可以利用該預(yù)容器,在該預(yù)容器的基礎(chǔ)之上,啟動(dòng)該待啟動(dòng)容器,同時(shí)消耗掉該預(yù)容器;也即,在接收到啟動(dòng)容器請(qǐng)求之后,如果檢測(cè)到與所需鏡像相對(duì)應(yīng)的預(yù)容器,則直接在該預(yù)容器的基礎(chǔ)上繼續(xù)進(jìn)行啟動(dòng)即可,無需創(chuàng)建預(yù)容器的過程。
由于在容器啟動(dòng)時(shí)消耗了預(yù)容器,則下一次容器啟動(dòng)時(shí),還需要再根據(jù)選取基礎(chǔ)鏡像的預(yù)設(shè)規(guī)則生成新的預(yù)容器,也即,還需要重新執(zhí)行該docker容器啟動(dòng)方法。當(dāng)然,再次執(zhí)行該docker容器啟動(dòng)方法時(shí),選取的基礎(chǔ)鏡像可能會(huì)與上次執(zhí)行時(shí)所選取的基礎(chǔ)鏡像有所不同,可以根據(jù)適當(dāng)?shù)念A(yù)設(shè)規(guī)則進(jìn)行選取,此處不再贅述。
另外,參見圖2,若已創(chuàng)建的各個(gè)預(yù)容器中不存在與待啟動(dòng)容器所需要的鏡像相對(duì)應(yīng)的預(yù)容器,則執(zhí)行步驟s103;
s103、按照容器啟動(dòng)的基本流程,啟動(dòng)待啟動(dòng)容器。
本實(shí)施例提供的docker容器啟動(dòng)方法,可以根據(jù)實(shí)際應(yīng)用環(huán)境設(shè)置該預(yù)設(shè)算法,以對(duì)基礎(chǔ)鏡像進(jìn)行適當(dāng)?shù)倪x取,并為其創(chuàng)建容器啟動(dòng)過程中需要用到的預(yù)容器,進(jìn)而對(duì)可能要啟動(dòng)的容器進(jìn)行預(yù)先準(zhǔn)備,節(jié)約容器的啟動(dòng)時(shí)間,加快容器的啟動(dòng)速度,減小版本升級(jí)等情況下的單實(shí)例服務(wù)中斷時(shí)間,提高服務(wù)的穩(wěn)定性。
本發(fā)明另一實(shí)施例還提供了另外一種docker容器啟動(dòng)方法,在上一實(shí)施例的基礎(chǔ)之上,優(yōu)選的:
該預(yù)設(shè)規(guī)則為:
依據(jù)使用時(shí)間排序,以最近使用的第一預(yù)設(shè)個(gè)數(shù)的鏡像作為選取對(duì)象;
和/或,
依據(jù)下載時(shí)間排序,以最近下載的第二預(yù)設(shè)個(gè)數(shù)的鏡像作為選取對(duì)象。
各個(gè)預(yù)容器的創(chuàng)建過程,包括:
為各個(gè)基礎(chǔ)鏡像分別創(chuàng)建虛擬磁盤設(shè)備;
在虛擬磁盤設(shè)備上創(chuàng)建文件系統(tǒng);
將創(chuàng)建好的文件系統(tǒng)以寫時(shí)復(fù)制的方式掛載到相應(yīng)基礎(chǔ)鏡像提供的文件系統(tǒng)上,作為可寫層文件系統(tǒng)。
步驟s102中的啟動(dòng)待啟動(dòng)容器,包括:
對(duì)可寫層文件系統(tǒng)進(jìn)行運(yùn)行時(shí)配置寫入操作;
及啟動(dòng)進(jìn)程操作。
具體的,參見圖3,給出了圖1或圖2所示docker容器啟動(dòng)方法的具體實(shí)現(xiàn)形式,圖3以在圖2基礎(chǔ)上為例進(jìn)行展示,包括:
s201、根據(jù)接收的啟動(dòng)容器請(qǐng)求,判斷各個(gè)預(yù)容器中是否存在與待啟動(dòng)容器所需要的鏡像相對(duì)應(yīng)的預(yù)容器;
若各個(gè)預(yù)容器中存在該相對(duì)應(yīng)的預(yù)容器,則執(zhí)行步驟s202;
s202、基于該相對(duì)應(yīng)的預(yù)容器,對(duì)可寫層文件系統(tǒng)進(jìn)行運(yùn)行時(shí)配置寫入操作,并進(jìn)行啟動(dòng)進(jìn)程操作;
若各個(gè)預(yù)容器中不存在該相對(duì)應(yīng)的預(yù)容器,則執(zhí)行步驟s203;
s203、按照容器啟動(dòng)的基本流程,啟動(dòng)待啟動(dòng)容器;
s204、重新選取最近使用的十個(gè)鏡像及最近下載的十個(gè)鏡像,作為下一次執(zhí)行該docker容器啟動(dòng)方法時(shí)要用到的基礎(chǔ)鏡像;
本實(shí)施例中步驟s204中,給出了具體的預(yù)設(shè)規(guī)則,即:檢測(cè)本地鏡像的情況,選取最近使用的十個(gè)鏡像及最近下載的十個(gè)鏡像,作為基礎(chǔ)鏡像。當(dāng)然,在具體的實(shí)際應(yīng)用中,也可以選取其他數(shù)量的鏡像,比如選取最近使用的十五個(gè)鏡像,及,最近下載的十五個(gè)鏡像,作為基礎(chǔ)鏡像;另外,第一預(yù)設(shè)個(gè)數(shù)和第二預(yù)設(shè)個(gè)數(shù)均不做具體限定,也不一定必須相同,可以視其具體應(yīng)用環(huán)境而定,此處不再一一贅述,均在本申請(qǐng)的保護(hù)范圍內(nèi)。
s205、創(chuàng)建各個(gè)預(yù)容器:為各個(gè)基礎(chǔ)鏡像分別創(chuàng)建虛擬磁盤設(shè)備,在虛擬磁盤設(shè)備上創(chuàng)建文件系統(tǒng),將創(chuàng)建好的文件系統(tǒng)以寫時(shí)復(fù)制的方式掛載到相應(yīng)基礎(chǔ)鏡像提供的文件系統(tǒng)上。
由于鏡像本身包括多層的文件系統(tǒng),在啟動(dòng)容器時(shí),將會(huì)利用所需要的鏡像,并在該鏡像之上增加一個(gè)可寫層文件系統(tǒng),因此可以通過步驟s205,將在虛擬磁盤設(shè)備上創(chuàng)建得到的文件系統(tǒng),掛載到對(duì)應(yīng)鏡像提供的文件系統(tǒng)上,實(shí)現(xiàn)該可寫層文件系統(tǒng)的增加,即預(yù)容器的創(chuàng)建。這樣,可以用同一個(gè)鏡像啟動(dòng)多個(gè)docker容器,這些容器啟動(dòng)后都是活動(dòng)的,彼此還是相互隔離的;對(duì)其中一個(gè)容器所做的變更只會(huì)局限于那個(gè)容器本身。
執(zhí)行步驟s205時(shí),并不寫入運(yùn)行時(shí)配置,也不啟動(dòng)進(jìn)程。只有在接收到啟動(dòng)容器請(qǐng)求之后,通過步驟s201檢查所需要的鏡像,如果發(fā)現(xiàn)該鏡像對(duì)應(yīng)的預(yù)容器已經(jīng)創(chuàng)建,那么即可通過步驟s202在該預(yù)容器的基礎(chǔ)上,繼續(xù)執(zhí)行運(yùn)行時(shí)配置寫入操作,即從宿主主機(jī)配置的網(wǎng)橋接口中橋接一個(gè)虛擬接口到容器中去,再?gòu)牡刂烦嘏渲靡粋€(gè)ip地址給容器;以及啟動(dòng)進(jìn)程操作,即執(zhí)行用戶指定的應(yīng)用程序;否則,通過步驟s203按照容器啟動(dòng)的基本流程啟動(dòng)對(duì)應(yīng)容器。由于該運(yùn)行時(shí)配置寫入操作及啟動(dòng)進(jìn)程操作,已經(jīng)對(duì)相應(yīng)可寫層文件系統(tǒng)進(jìn)行改變,也即消耗掉了原有的預(yù)容器,需要再根據(jù)預(yù)設(shè)規(guī)則為新的基礎(chǔ)鏡像生成新的預(yù)容器,以備下一次容器啟動(dòng)使用。
現(xiàn)有技術(shù)中的容器啟動(dòng)過程,具體包括:為所需鏡像創(chuàng)建虛擬磁盤設(shè)備、在該虛擬磁盤設(shè)備上創(chuàng)建文件系統(tǒng)、將此文件系統(tǒng)掛載到對(duì)應(yīng)鏡像提供的文件系統(tǒng)上(作為可寫層文件系統(tǒng))、運(yùn)行時(shí)配置寫入及啟動(dòng)進(jìn)程等創(chuàng)建容器操作,而這一系列的操作將會(huì)影響啟動(dòng)容器的速度,導(dǎo)致啟動(dòng)緩慢。
本實(shí)施例在現(xiàn)有技術(shù)的基礎(chǔ)之上,以“掛載有可寫層文件系統(tǒng)”為界,將其與其之前的步驟劃歸為預(yù)容器的創(chuàng)建過程,在接收到啟動(dòng)容器請(qǐng)求之前,為可能會(huì)啟動(dòng)的容器提前準(zhǔn)備好預(yù)容器,在接收到啟動(dòng)容器請(qǐng)求之后,只要在相應(yīng)預(yù)容器的基礎(chǔ)之上進(jìn)行后續(xù)的啟動(dòng)操作即可,以節(jié)約啟動(dòng)時(shí)間。
并且,在具體的實(shí)際應(yīng)用中,應(yīng)當(dāng)根據(jù)實(shí)際環(huán)境采用適當(dāng)?shù)念A(yù)設(shè)規(guī)則,使上述循環(huán)過程中,每次所選取的基礎(chǔ)鏡像都能保證較高的可靠性,對(duì)要啟動(dòng)的可能性更大的容器進(jìn)行預(yù)先準(zhǔn)備,以實(shí)現(xiàn)節(jié)約容器的啟動(dòng)時(shí)間、加快容器的啟動(dòng)速度的目的。
本發(fā)明另一實(shí)施例還提供了一種docker容器啟動(dòng)裝置,參見圖4,包括:選取單元101、預(yù)容器創(chuàng)建單元102、判斷單元103及啟動(dòng)單元104;具體的工作原理為:
選取單元101用于根據(jù)預(yù)設(shè)規(guī)則選取基礎(chǔ)鏡像;
預(yù)容器創(chuàng)建單元102用于在接收啟動(dòng)容器請(qǐng)求之前為基礎(chǔ)鏡像創(chuàng)建預(yù)容器,使基礎(chǔ)鏡像掛載有可寫層文件系統(tǒng);
判斷單元103用于根據(jù)接收的啟動(dòng)容器請(qǐng)求,判斷各個(gè)預(yù)容器中是否存在與待啟動(dòng)容器所需要的鏡像相對(duì)應(yīng)的預(yù)容器;
啟動(dòng)單元104用于若各個(gè)預(yù)容器中是否存在相對(duì)應(yīng)的預(yù)容器,則基于相對(duì)應(yīng)的預(yù)容器,啟動(dòng)待啟動(dòng)容器。
本實(shí)施例提供的docker容器啟動(dòng)裝置,可以根據(jù)實(shí)際應(yīng)用環(huán)境設(shè)置該預(yù)設(shè)規(guī)則,以對(duì)基礎(chǔ)鏡像進(jìn)行適當(dāng)?shù)倪x取,并為其創(chuàng)建容器啟動(dòng)過程中需要用到的預(yù)容器,進(jìn)而對(duì)可能要啟動(dòng)的容器進(jìn)行預(yù)先準(zhǔn)備,節(jié)約容器的啟動(dòng)時(shí)間,加快容器的啟動(dòng)速度,減小版本升級(jí)等情況下的單實(shí)例服務(wù)中斷時(shí)間,提高服務(wù)的穩(wěn)定性。
優(yōu)選的,預(yù)設(shè)規(guī)則為:
依據(jù)使用時(shí)間排序,以最近使用的第一預(yù)設(shè)個(gè)數(shù)的鏡像作為選取對(duì)象;
和/或,
依據(jù)下載時(shí)間排序,以最近下載的第二預(yù)設(shè)個(gè)數(shù)的鏡像作為選取對(duì)象。
優(yōu)選的,預(yù)容器創(chuàng)建單元102用于為基礎(chǔ)鏡像創(chuàng)建預(yù)容器時(shí),具體用于:
為各個(gè)基礎(chǔ)鏡像分別創(chuàng)建虛擬磁盤設(shè)備;
在虛擬磁盤設(shè)備上創(chuàng)建文件系統(tǒng);
將創(chuàng)建好的文件系統(tǒng)以寫時(shí)復(fù)制的方式掛載到相應(yīng)基礎(chǔ)鏡像提供的文件系統(tǒng)上,作為可寫層文件系統(tǒng)。
優(yōu)選的,啟動(dòng)單元104用于啟動(dòng)待啟動(dòng)容器時(shí),具體用于:
對(duì)所述可寫層文件系統(tǒng)進(jìn)行運(yùn)行時(shí)配置寫入操作;
及啟動(dòng)進(jìn)程操作。
其他具體的工作原理與上述實(shí)施例相同,此處不再一一贅述。
本發(fā)明中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。對(duì)于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法部分說明即可。
對(duì)所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。