[0025]圖4示出了根據(jù)本發(fā)明一個優(yōu)選實(shí)施例的docker中任一 container與bridge連接以獨(dú)立與外界通信的結(jié)構(gòu)示意圖;
[0026]圖5示出了根據(jù)本發(fā)明一個實(shí)施例的網(wǎng)絡(luò)通信客戶端的結(jié)構(gòu)示意圖;以及
[0027]圖6示出了根據(jù)本發(fā)明一個優(yōu)選實(shí)施例的網(wǎng)絡(luò)通信客戶端的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0028]下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0029]相關(guān)技術(shù)中提及,在使用開源應(yīng)用容器引擎(以下簡稱docker)與容器(以下簡稱container)的方式進(jìn)行資源隔離時,若對docker的任一 container進(jìn)行端口分配時,每個端口僅能夠讓一個container使用,無法實(shí)現(xiàn)端口對應(yīng)的技術(shù)或者協(xié)議被多個container共用,導(dǎo)致需要多重復(fù)雜繁瑣的操作才能夠進(jìn)行多種技術(shù)或者功能的對接,甚至存在一些技術(shù)或者功能,在現(xiàn)有技術(shù)中,不論經(jīng)過多少復(fù)雜繁瑣的操作也無法實(shí)現(xiàn)對接。
[0030]為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種網(wǎng)絡(luò)通信方法。圖1示出了根據(jù)本發(fā)明一個實(shí)施例的網(wǎng)絡(luò)通信方法的處理流程示意圖。請參考圖1,該流程至少包括步驟S102、步驟S104以及步驟S106。
[0031]步驟S102:在虛擬局域網(wǎng)(Virtual Local Area Network,以下簡稱vlan)設(shè)置為中繼(trunk)模式時,利用網(wǎng)橋設(shè)備關(guān)聯(lián)vlan與網(wǎng)卡,生成網(wǎng)橋(以下簡稱bridge),并使用docker指定生成的bridge,即更改docker的配置,使得docker能夠利用生成的bridge完成需要bridge的操作;
[0032]步驟S104:利用生成的bridge為docker中的每個container分配獨(dú)立的網(wǎng)絡(luò)通信標(biāo)識,使得每個container能夠利用其網(wǎng)絡(luò)通信標(biāo)識通過vlan獨(dú)立與外界進(jìn)行通信,其中,本例中的container為docker啟動的container。
[0033]依據(jù)本發(fā)明實(shí)施例,能夠使用docker指定bridge,其中,bridge的生成步驟為:在虛擬局域網(wǎng)vlan設(shè)置為中繼trunk模式時,利用網(wǎng)橋設(shè)備關(guān)聯(lián)vlan與網(wǎng)卡,生成bridge。之后,利用指定的bridge為docker中的每個container分配獨(dú)立的網(wǎng)絡(luò)通信標(biāo)識,使得每個container能夠利用其網(wǎng)絡(luò)通信標(biāo)識通過vlan獨(dú)立與外界進(jìn)行通信,解決了現(xiàn)有技術(shù)中docker管理的每個container無法獨(dú)立與外界進(jìn)行通信的問題。其中,本例中的container為docker啟動的container。由于利用docker自身創(chuàng)建的bridge為docker管理的所有container分配網(wǎng)絡(luò)通信標(biāo)識時,所有的container只能夠共用同一個網(wǎng)絡(luò)通信標(biāo)識,而利用指定的bridge進(jìn)行網(wǎng)絡(luò)通信標(biāo)識的分配操作時,貝U能夠利用bridge中的vlan對網(wǎng)絡(luò)通信標(biāo)識進(jìn)行劃分,使得組成docker的每個container能夠被分配到獨(dú)立的網(wǎng)絡(luò)通信標(biāo)識,并利用該網(wǎng)絡(luò)通信標(biāo)識獨(dú)立與外界進(jìn)行通信。因此,本發(fā)明實(shí)施例中,docker管理的每個container能夠直接與外界進(jìn)行通信,避免通過第三方的數(shù)據(jù)分配等操作與外界進(jìn)行通信導(dǎo)致的數(shù)據(jù)包不能夠及時分配的問題,降低丟包率,提高container與外界的通信效率。
[0034]另外,由于使用本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)通信方法能夠使得docker中的每個container具備獨(dú)立與外界進(jìn)行通信的能力(通過獨(dú)立的網(wǎng)絡(luò)通信標(biāo)識),因此,則當(dāng)docker中存在多個container時,可以利用每個container的獨(dú)立的網(wǎng)絡(luò)通信標(biāo)識映射到同一端口,每個container都可以利用該端口與外界通信(包括同時和/或分時使用),互相之間并不影響。即采用本發(fā)明實(shí)施例能夠?qū)⑺衏ontainer綁定到同一個端口,實(shí)現(xiàn)任意端口對應(yīng)的功能或者技術(shù)的無縫對接。
[0035]上文提及,本發(fā)明實(shí)施例中,為docker中的每個container分配獨(dú)立的網(wǎng)絡(luò)通信標(biāo)識,使得每個container能夠利用其網(wǎng)絡(luò)通信標(biāo)識通過vlan獨(dú)立與外界進(jìn)行通信。具體地,在為每個container分配獨(dú)立的網(wǎng)絡(luò)通信標(biāo)識時,本發(fā)明實(shí)施例利用vlan根據(jù)docker中的container的個數(shù)對網(wǎng)絡(luò)通信標(biāo)識進(jìn)行劃分。之后,根據(jù)劃分結(jié)果為docker中的每個container分配獨(dú)立的網(wǎng)絡(luò)通信標(biāo)識。例如,當(dāng)網(wǎng)絡(luò)通信標(biāo)識為網(wǎng)絡(luò)通信協(xié)議(InternetProtocol,以下簡稱 IP)地址,并且當(dāng)前 docker 中的 container 為 containerl、container2以及container3時,利用vlan對IP地址進(jìn)行劃分。劃分結(jié)果為11.0.0.1,11.0.0.2以及11.0.0.3,則為每個container分配獨(dú)立的IP地址,分配結(jié)果可以是:
[0036]Container 1 的 IP 地址為 11.0.0.1 ;
[0037]Container〗的 IP 地址為 11.0.0.2 ;
[0038]Container3 的 IP 地址為 11.0.0.3。
[0039]再例如,當(dāng)網(wǎng)絡(luò)通信標(biāo)識為IP地址,并且IP地址為兩個網(wǎng)段,分別是11.0.0和
11.0.1。另夕卜,當(dāng)前 docker 中的 container 為 container4、container5、container6 以及container?時,利用vlan對IP地址進(jìn)行劃分。劃分結(jié)果為11.0.0.1,11.0.0.2,11.0.1.1、
11.0.1.2,則為每個container分配獨(dú)立的IP地址,分配結(jié)果可以是:
[0040]Container4 的 IP 地址為 11.0.1.2 ;
[0041]Container5 的 IP 地址為 11.0.1.1 ;
[0042]Container6 的 IP 地址為 11.0.0.2 ;
[0043]Container?的 IP 地址為 11.0.0.1。
[0044]需要說明的是,上例中提及的劃分結(jié)果以及分配結(jié)果僅為示例,并不能夠代表實(shí)際操作中的劃分結(jié)果和/或分配結(jié)果。
[0045]上文對“為docker中的每個container分配獨(dú)立的網(wǎng)絡(luò)通信標(biāo)識”的過程進(jìn)行了介紹。在該過程中,本發(fā)明實(shí)施例利用vlan根據(jù)docker中的container的個數(shù)對網(wǎng)絡(luò)通信標(biāo)識進(jìn)行劃分。劃分之后,若僅需要docker中的每個container能夠獨(dú)立與外部進(jìn)行通信,則如上文介紹的過程,直接根據(jù)劃分結(jié)果為docker中的每個container分配獨(dú)立的網(wǎng)絡(luò)通信標(biāo)識。若需要將指定的網(wǎng)絡(luò)通信標(biāo)識與container進(jìn)行綁定,則需要根據(jù)如圖2所示的流程圖執(zhí)行相應(yīng)操作。圖2示出了根據(jù)本發(fā)明一個優(yōu)選實(shí)施例的綁定指定網(wǎng)絡(luò)通信標(biāo)識與container的處理流程示意圖。請參考圖2,該流程至少包括步驟S202以及步驟S204。
[0046]步驟S202:更改docker中的配置數(shù)據(jù),以阻止docker的網(wǎng)絡(luò)通信標(biāo)識自動分配操作,具體地,若未更改docker中的配置數(shù)據(jù),docker在啟動container時,能夠利用bridge自動為啟動的container分配網(wǎng)絡(luò)通信標(biāo)識。而本例中,更改docker中的配置數(shù)據(jù),阻止docker利用bridge自動為啟動的container分配網(wǎng)絡(luò)通信標(biāo)識的操作。優(yōu)選地,本例中,docker中的配置數(shù)據(jù)包括網(wǎng)卡配置數(shù)據(jù)。當(dāng)需要將指定網(wǎng)絡(luò)通信標(biāo)識與container進(jìn)行綁定時,則可以更改docker中的網(wǎng)卡配置數(shù)據(jù)為關(guān)閉狀態(tài)(以下簡稱false狀態(tài)),以阻止docker的網(wǎng)絡(luò)通信標(biāo)識自動分配操作;
[0047]步驟S204:將指定網(wǎng)絡(luò)通信標(biāo)識與docker中選定的container綁定,以供選定的container利用指定的網(wǎng)絡(luò)通信標(biāo)識獨(dú)立與外界進(jìn)行通信,流程結(jié)束。
[0048]本發(fā)明實(shí)施例中,通過“使用docker指定bridge,并利用指定的bridge啟動該docker”這一方式,為組成docker的container分配或者綁定獨(dú)立的網(wǎng)絡(luò)通信標(biāo)識,使得每個container能夠利用其網(wǎng)絡(luò)通信標(biāo)識與外界進(jìn)行通信。另外,本發(fā)明實(shí)施例中,網(wǎng)絡(luò)通信標(biāo)識可以是任意能夠被contai