容器間的通信方法及裝置的制造方法
【專利摘要】本發(fā)明實(shí)施例提供一種容器間的通信方法及裝置。該方法包括:第一虛擬網(wǎng)橋向子網(wǎng)內(nèi)除第一虛擬網(wǎng)橋外的第二虛擬網(wǎng)橋發(fā)送第一消息,第一消息包括第一容器的地址信息和第一虛擬網(wǎng)橋的標(biāo)識(shí)信息;第一虛擬網(wǎng)橋接收第二虛擬網(wǎng)橋發(fā)送的第二消息,第二消息包括第二容器的地址信息和第二虛擬網(wǎng)橋的標(biāo)識(shí)信息;若第一虛擬網(wǎng)橋的標(biāo)識(shí)信息和第二虛擬網(wǎng)橋的標(biāo)識(shí)信息相同,則第一虛擬網(wǎng)橋?qū)⒌诙萜鞯牡刂沸畔l(fā)送給第一容器,以使第一容器依據(jù)第二容器的地址信息與第二容器通信。本發(fā)明實(shí)施例實(shí)現(xiàn)了分散在不同Docker服務(wù)器上且屬于同一用戶的容器之間的正常通信,另外,容器間通信不需要通過(guò)廣播方式廣播待發(fā)送的報(bào)文,提高了容器之間信息交互的保密性。
【專利說(shuō)明】
容器間的通信方法及裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明實(shí)施例設(shè)及通信技術(shù)領(lǐng)域,尤其設(shè)及一種容器間的通信方法及裝置。
【背景技術(shù)】
[0002] Docker是一個(gè)開(kāi)源的應(yīng)用容器引擎,在物理主機(jī)上安裝Docker后,可在Docker的 基礎(chǔ)上承載多個(gè)容器,多個(gè)容器之間相互隔離,多個(gè)容器共享物理主機(jī)的操作系統(tǒng),各容器 可放置并執(zhí)行不同的應(yīng)用程序。
[0003] 現(xiàn)有技術(shù)中,除了廣播通信方式,分散在不同Docker服務(wù)器上且屬于同一用戶的 容器之間無(wú)法正常通信,而廣播通信方式會(huì)降低容器之間信息交互的保密性。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明實(shí)施例提供一種容器間的通信方法及裝置,W實(shí)現(xiàn)分散在不同Docker服務(wù) 器上且屬于同一用戶的容器之間的正常通信。
[0005] 本發(fā)明實(shí)施例的一個(gè)方面是提供一種容器間的通信方法,包括:
[0006] 第一虛擬網(wǎng)橋向子網(wǎng)內(nèi)除所述第一虛擬網(wǎng)橋外的第二虛擬網(wǎng)橋發(fā)送第一消息,所 述第一消息包括第一容器的地址信息和所述第一虛擬網(wǎng)橋的標(biāo)識(shí)信息;
[0007] 所述第一虛擬網(wǎng)橋接收所述第二虛擬網(wǎng)橋發(fā)送的第二消息,所述第二消息包括第 二容器的地址信息和所述第二虛擬網(wǎng)橋的標(biāo)識(shí)信息;
[000引若所述第一虛擬網(wǎng)橋的標(biāo)識(shí)信息和所述第二虛擬網(wǎng)橋的標(biāo)識(shí)信息相同,則所述第 一虛擬網(wǎng)橋?qū)⑺龅诙萜鞯牡刂沸畔l(fā)送給第一容器,W使所述第一容器依據(jù)所述第二 容器的地址信息與第二容器通信,具有相同的標(biāo)識(shí)信息的虛擬網(wǎng)橋?qū)?yīng)于同一用戶;
[0009] 其中,所述第一虛擬網(wǎng)橋和所述第一容器位于第一Docker服務(wù)器,所述第二虛擬 網(wǎng)橋和所述第二容器位于第二Docker服務(wù)器。
[0010] 本發(fā)明實(shí)施例的另一個(gè)方面是提供一種容器間的通信裝置,包括:
[0011] 發(fā)送模塊,用于向子網(wǎng)內(nèi)除所述第一虛擬網(wǎng)橋外的第二虛擬網(wǎng)橋發(fā)送第一消息, 所述第一消息包括第一容器的地址信息和所述第一虛擬網(wǎng)橋的標(biāo)識(shí)信息;
[0012] 接收模塊,用于接收所述第二虛擬網(wǎng)橋發(fā)送的第二消息,所述第二消息包括第二 容器的地址信息和所述第二虛擬網(wǎng)橋的標(biāo)識(shí)信息;
[0013] 所述發(fā)送模塊,還用于所述第一虛擬網(wǎng)橋的標(biāo)識(shí)信息和所述第二虛擬網(wǎng)橋的標(biāo)識(shí) 信息相同時(shí),將所述第二容器的地址信息發(fā)送給第一容器,W使所述第一容器依據(jù)所述第 二容器的地址信息與第二容器通信,具有相同的標(biāo)識(shí)信息的虛擬網(wǎng)橋?qū)?yīng)于同一用戶;
[0014] 其中,所述第一虛擬網(wǎng)橋和所述第一容器位于第一Docker服務(wù)器,所述第二虛擬 網(wǎng)橋和所述第二容器位于第二Docker服務(wù)器。
[0015] 本發(fā)明實(shí)施例提供的容器間的通信方法及裝置,通過(guò)第一虛擬網(wǎng)橋向第二虛擬網(wǎng) 橋發(fā)送第一消息,第二虛擬網(wǎng)橋向第一虛擬網(wǎng)橋發(fā)送第二消息,第一消息包括有第一容器 的地址信息和第一虛擬網(wǎng)橋的標(biāo)識(shí)信息,第二消息包括第二容器的地址信息和第二虛擬網(wǎng) 橋的標(biāo)識(shí)信息,標(biāo)識(shí)信息相同的第一虛擬網(wǎng)橋和第二虛擬網(wǎng)橋?qū)?yīng)于同一個(gè)用戶,第一虛 擬網(wǎng)橋根據(jù)第二消息獲取第二容器的地址信息,第二虛擬網(wǎng)橋根據(jù)第一消息獲取第一容器 的地址信息,第一虛擬網(wǎng)橋?qū)?yīng)的第一容器根據(jù)第二容器的地址信息與第二容器通信,第 二虛擬網(wǎng)橋?qū)?yīng)的第二容器根據(jù)第一容器的地址信息與第一容器通信,由于第一虛擬網(wǎng)橋 和第一容器位于第一 Docker服務(wù)器,第二虛擬網(wǎng)橋和第二容器位于第二Docker服務(wù)器,從 而實(shí)現(xiàn)了分散在不同Docker服務(wù)器上且屬于同一用戶的容器之間的正常通信,另外,容器 間通信不需要通過(guò)廣播方式廣播待發(fā)送的報(bào)文,提高了容器之間信息交互的保密性。
【附圖說(shuō)明】
[0016] 圖1為現(xiàn)有技術(shù)中Docker服務(wù)器與子網(wǎng)的連接示意圖;
[0017] 圖2為現(xiàn)有技術(shù)中Docker服務(wù)器與子網(wǎng)的連接示意圖;
[0018] 圖3為本發(fā)明實(shí)施例提供的容器間的通信方法流程圖;
[0019] 圖4為本發(fā)明實(shí)施例提供的容器間的通信方法適用的網(wǎng)絡(luò)架構(gòu)圖;
[0020] 圖5為本發(fā)明另一實(shí)施例提供的容器間的通信方法流程圖;
[0021] 圖6為本發(fā)明另一實(shí)施例提供的容器間的通信方法適用的網(wǎng)絡(luò)架構(gòu)圖;
[0022] 圖7為本發(fā)明實(shí)施例提供的容器間的通信裝置的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0023] 圖1為現(xiàn)有技術(shù)中Docker服務(wù)器與子網(wǎng)的連接示意圖。如圖1所示,Docker服務(wù)器 21屬于子網(wǎng)20,Docker服務(wù)器21包括容器31和容器32,容器31內(nèi)設(shè)有虛擬網(wǎng)卡41,容器32內(nèi) 設(shè)有虛擬網(wǎng)卡42,虛擬網(wǎng)卡41和虛擬網(wǎng)卡42分別與網(wǎng)橋43連接,網(wǎng)橋43與Docker服務(wù)器21 的物理網(wǎng)卡44連接。網(wǎng)橋43分別為容器31和容器32分配互不相同的私網(wǎng)地址,當(dāng)容器31或 容器32訪問(wèn)子網(wǎng)20之外的設(shè)備時(shí),容器31或容器32向網(wǎng)橋43發(fā)送報(bào)文,報(bào)文包括私網(wǎng)地址, 網(wǎng)橋43將私網(wǎng)地址轉(zhuǎn)換為Docker服務(wù)器21的公網(wǎng)地址將報(bào)文發(fā)送出去。另外,容器31和容 器32分別對(duì)應(yīng)Docker服務(wù)器21的不同端口,子網(wǎng)20之外的設(shè)備根據(jù)Docker服務(wù)器21的公網(wǎng) 地址和容器的端口號(hào)可向Docker服務(wù)器21上該端口號(hào)對(duì)應(yīng)的容器發(fā)送報(bào)文。
[0024] 圖2為現(xiàn)有技術(shù)中Docker服務(wù)器與子網(wǎng)的連接示意圖。如圖2所示,在圖1的基礎(chǔ) 上,Docker服務(wù)器51屬于子網(wǎng)20 ,Docker服務(wù)器51包括容器61和容器62,容器61內(nèi)設(shè)有虛擬 網(wǎng)卡71,容器62內(nèi)設(shè)有虛擬網(wǎng)卡72,虛擬網(wǎng)卡71和虛擬網(wǎng)卡72分別與網(wǎng)橋73連接,網(wǎng)橋73與 Docker服務(wù)器51的物理網(wǎng)卡74連接。假設(shè)容器31和容器61屬于用戶A,容器32和容器62屬于 用戶B,即同一用戶的容器分散在不同的Docker服務(wù)器上。
[0025] 圖3為本發(fā)明實(shí)施例提供的容器間的通信方法流程圖;圖4為本發(fā)明實(shí)施例提供的 容器間的通信方法適用的網(wǎng)絡(luò)架構(gòu)圖。本發(fā)明實(shí)施例針對(duì)現(xiàn)有技術(shù)中,除了廣播通信方式, 分散在不同Docker服務(wù)器上且屬于同一用戶的容器之間無(wú)法正常通信,而廣播通信方式會(huì) 降低容器之間信息交互的保密性,提供了容器間的通信方法,該方法具體步驟如下:
[0026] 步驟S301、第一虛擬網(wǎng)橋向子網(wǎng)內(nèi)除所述第一虛擬網(wǎng)橋外的第二虛擬網(wǎng)橋發(fā)送第 一消息,所述第一消息包括第一容器的地址信息和所述第一虛擬網(wǎng)橋的標(biāo)識(shí)信息;
[0027] 本發(fā)明實(shí)施例提供了分散在不同的Docker服務(wù)器上的屬于同一用戶的容器之間 的通信方法,即如圖2所示的容器31和容器61之間、容器32和容器62之間的通信方法,本發(fā) 明實(shí)施例W容器31和容器61之間的通信方法為例進(jìn)行介紹。
[0028]如圖4所示,容器31和容器61屬于同一個(gè)用戶即用戶A,且分散在不同的Docker服 務(wù)器即Docker服務(wù)器21和Docker服務(wù)器51,在Docker服務(wù)器21上創(chuàng)建第一虛擬網(wǎng)橋81,在 Docker服務(wù)器51上創(chuàng)建第二虛擬網(wǎng)橋82,第一虛擬網(wǎng)橋81和第二虛擬網(wǎng)橋82屬于用戶A,創(chuàng) 建虛擬網(wǎng)橋的方法可W是現(xiàn)有技術(shù)中的任何一種方法。第一虛擬網(wǎng)橋81為容器31分配一個(gè) 私網(wǎng)IP地址,例如192.168.0.100;第二虛擬網(wǎng)橋82為容器61分配一個(gè)私網(wǎng)IP地址,例如 192.168.0.200。
[00巧]由于Docker服務(wù)器21和Docker服務(wù)器51屬于同一個(gè)子網(wǎng),Docker服務(wù)器21和 Docker服務(wù)器51可通過(guò)同一個(gè)子網(wǎng)廣播消息,具體地,Docker服務(wù)器21中的第一虛擬網(wǎng)橋 81廣播第一消息,該第一消息被第二虛擬網(wǎng)橋82接收,第一消息包括第一容器的地址信息 和所述第一虛擬網(wǎng)橋的標(biāo)識(shí)信息,其中,所述第一容器的地址信息包括所述第一容器的公 網(wǎng)IP地址和所述第一容器的端口號(hào),具體地,第一消息包括報(bào)文頭部分和報(bào)文正文部分,報(bào) 文頭部分包括容器31的公網(wǎng)IP地址和容器31的端口號(hào),容器31的公網(wǎng)IP地址是Docker服務(wù) 器21的IP地址,例如202. X.X.1,容器31的端口號(hào)是容器31在Docker服務(wù)器21上的端口號(hào), 例如1234;報(bào)文正文部分包括第一虛擬網(wǎng)橋81的標(biāo)識(shí)信息。
[0030]步驟S302、所述第一虛擬網(wǎng)橋接收所述第二虛擬網(wǎng)橋發(fā)送的第二消息,所述第二 消息包括第二容器的地址信息和所述第二虛擬網(wǎng)橋的標(biāo)識(shí)信息;
[0031 ]由于Docker服務(wù)器21和Docker服務(wù)器51屬于同一個(gè)子網(wǎng),Docker服務(wù)器21和 Docker服務(wù)器51可通過(guò)同一個(gè)子網(wǎng)廣播消息,同理,Docker服務(wù)器51中的第二虛擬網(wǎng)橋82 廣播第二消息,該第二消息被第一虛擬網(wǎng)橋81接收,第二消息包括第二容器的地址信息和 所述第二虛擬網(wǎng)橋的標(biāo)識(shí)信息,其中,所述第二容器的地址信息包括所述第二容器的公網(wǎng) IP地址和所述第二容器的端口號(hào),具體地,第二消息包括報(bào)文頭部分和報(bào)文正文部分,報(bào)文 頭部分包括容器61的公網(wǎng)IP地址和容器61的端口號(hào),容器61的公網(wǎng)IP地址是Docker服務(wù)器 51的IP地址,例如202. X. X. 2,容器61的端口號(hào)是容器61在Docker服務(wù)器51上的端口號(hào),例 如5678;報(bào)文正文部分包括第二虛擬網(wǎng)橋82的標(biāo)識(shí)信息。
[0032] 步驟S303、若所述第一虛擬網(wǎng)橋的標(biāo)識(shí)信息和所述第二虛擬網(wǎng)橋的標(biāo)識(shí)信息相 同,則所述第一虛擬網(wǎng)橋?qū)⑺龅诙萜鞯牡刂沸畔l(fā)送給第一容器,W使所述第一容器 依據(jù)所述第二容器的地址信息與第二容器通信,具有相同的標(biāo)識(shí)信息的虛擬網(wǎng)橋?qū)?yīng)于同 一用戶。
[0033] 其中,所述第一虛擬網(wǎng)橋和所述第一容器位于第一Docker服務(wù)器,所述第二虛擬 網(wǎng)橋和所述第二容器位于第二Docker服務(wù)器。
[0034] 在本發(fā)明實(shí)施例中,第一虛擬網(wǎng)橋81接收第二虛擬網(wǎng)橋82廣播的第二消息,第二 虛擬網(wǎng)橋82接收第一虛擬網(wǎng)橋81廣播的第一消息,由于第二消息中包括第二虛擬網(wǎng)橋82的 標(biāo)識(shí)信息,第一消息中包括第一虛擬網(wǎng)橋81的標(biāo)識(shí)信息,由于第二虛擬網(wǎng)橋82和第一虛擬 網(wǎng)橋81屬于同一個(gè)用戶,則第二虛擬網(wǎng)橋82和第一虛擬網(wǎng)橋81的標(biāo)識(shí)信息相同,表明第二 虛擬網(wǎng)橋82對(duì)應(yīng)的容器61和第一虛擬網(wǎng)橋81對(duì)應(yīng)的容器31屬于同一個(gè)用戶,第二虛擬網(wǎng)橋 82記錄第一消息中容器31的地址信息,第一虛擬網(wǎng)橋81記錄第二消息中容器61的地址信 息,W便后續(xù)容器31和容器61通信。具體地,第一虛擬網(wǎng)橋81將容器61的地址信息發(fā)送給容 器31,第二虛擬網(wǎng)橋82將容器31的地址信息發(fā)送給容器61,容器31根據(jù)容器61的地址信息 便可W向容器61發(fā)送信息,容器61根據(jù)容器31的地址信息便可W向容器31發(fā)送信息,實(shí)現(xiàn) 了容器31和容器61之間的通信。
[0035] 本發(fā)明實(shí)施例通過(guò)第一虛擬網(wǎng)橋向第二虛擬網(wǎng)橋發(fā)送第一消息,第二虛擬網(wǎng)橋向 第一虛擬網(wǎng)橋發(fā)送第二消息,第一消息包括有第一容器的地址信息和第一虛擬網(wǎng)橋的標(biāo)識(shí) 信息,第二消息包括第二容器的地址信息和第二虛擬網(wǎng)橋的標(biāo)識(shí)信息,標(biāo)識(shí)信息相同的第 一虛擬網(wǎng)橋和第二虛擬網(wǎng)橋?qū)?yīng)于同一個(gè)用戶,第一虛擬網(wǎng)橋根據(jù)第二消息獲取第二容器 的地址信息,第二虛擬網(wǎng)橋根據(jù)第一消息獲取第一容器的地址信息,第一虛擬網(wǎng)橋?qū)?yīng)的 第一容器根據(jù)第二容器的地址信息與第二容器通信,第二虛擬網(wǎng)橋?qū)?yīng)的第二容器根據(jù)第 一容器的地址信息與第一容器通信,由于第一虛擬網(wǎng)橋和第一容器位于第一Docker服務(wù) 器,第二虛擬網(wǎng)橋和第二容器位于第二Docker服務(wù)器,從而實(shí)現(xiàn)了分散在不同Docker服務(wù) 器上且屬于同一用戶的容器之間的正常通信,另外,容器間通信不需要通過(guò)廣播方式廣播 待發(fā)送的報(bào)文,提高了容器之間信息交互的保密性。
[0036] 圖5為本發(fā)明另一實(shí)施例提供的容器間的通信方法流程圖。在圖3對(duì)應(yīng)的實(shí)施例的 基礎(chǔ)上,本發(fā)明實(shí)施例提供的容器間的通信方法具體步驟如下:
[0037] 步驟S501、第一虛擬網(wǎng)橋向子網(wǎng)內(nèi)除所述第一虛擬網(wǎng)橋外的第二虛擬網(wǎng)橋發(fā)送第 一消息,所述第一消息包括第一容器的地址信息和所述第一虛擬網(wǎng)橋的標(biāo)識(shí)信息;
[0038] 步驟S502、所述第一虛擬網(wǎng)橋接收所述第二虛擬網(wǎng)橋發(fā)送的第二消息,所述第二 消息包括第二容器的地址信息和所述第二虛擬網(wǎng)橋的標(biāo)識(shí)信息;
[0039] 步驟S503、若所述第一虛擬網(wǎng)橋的標(biāo)識(shí)信息和所述第二虛擬網(wǎng)橋的標(biāo)識(shí)信息相 同,則所述第一虛擬網(wǎng)橋?qū)⑺龅诙萜鞯牡刂沸畔l(fā)送給第一容器,W使所述第一容器 依據(jù)所述第二容器的地址信息與第二容器通信,具有相同的標(biāo)識(shí)信息的虛擬網(wǎng)橋?qū)?yīng)于同 一用戶;
[0040] 步驟S501-步驟S503分別與步驟S301-步驟S303-致,具體方法此處不再寶述。
[0041] 步驟S504、所述第一虛擬網(wǎng)橋接收所述第一容器發(fā)送的第一報(bào)文,所述第一報(bào)文 W所述第二容器的公網(wǎng)IP地址為目的IP地址、所述第二容器的端口號(hào)為目的端口號(hào)、所述 第一容器的公網(wǎng)IP地址為源IP地址;
[0042] 在上述實(shí)施例的基礎(chǔ)上,所述第一容器的地址信息還包括所述第一虛擬網(wǎng)橋分配 給所述第一容器的第一私網(wǎng)地址;所述第二容器的地址信息還包括所述第二虛擬網(wǎng)橋分配 給所述第二容器的第二私網(wǎng)地址。
[0043] 在本發(fā)明實(shí)施例中,第一虛擬網(wǎng)橋81發(fā)送的第一消息包括報(bào)文頭部分和報(bào)文正文 部分,報(bào)文頭部分包括容器31的公網(wǎng)IP地址202. X. X. 1、容器31的端口號(hào)1234和第一虛擬網(wǎng) 橋81分配給容器31的私網(wǎng)IP地址192.168.0.100;報(bào)文正文部分包括第一虛擬網(wǎng)橋81的標(biāo) 識(shí)信息。第二虛擬網(wǎng)橋82發(fā)送的第二消息包括報(bào)文頭部分和報(bào)文正文部分,報(bào)文頭部分包 括容器61的公網(wǎng)IP地址202. X.X. 2、容器61的端口號(hào)5678和第二虛擬網(wǎng)橋82分配給容器61 的私網(wǎng)IP地址192.168.0.200;報(bào)文正文部分包括第二虛擬網(wǎng)橋82的標(biāo)識(shí)信息。
[0044] 第一虛擬網(wǎng)橋81將容器61的公網(wǎng)IP地址202. X.X. 2、容器61的端口號(hào)5678和容器 61的私網(wǎng)IP地址192.168.0.200發(fā)送給容器31,第二虛擬網(wǎng)橋82將容器31的公網(wǎng)IP地址 202. X. X. 1、容器31的端口號(hào)1234和容器31的私網(wǎng)IP地址192.168.0.100發(fā)送給容器61。
[0045] 容器31通過(guò)第一虛擬網(wǎng)橋81向容器61發(fā)送第一報(bào)文,第一報(bào)文的帖格式如表1所 示:
[0046] 表1
[0047]
[004引由表1可知,容器31通過(guò)第一虛擬網(wǎng)橋81向容器61發(fā)送的第一報(bào)文包括報(bào)文頭和 報(bào)文正文,報(bào)文頭包括公網(wǎng)源地址和公網(wǎng)目的地址,公網(wǎng)源地址是容器31的公網(wǎng)IP地址和 端口號(hào)即202. X.X. 1:1234,公網(wǎng)目的地址是容器61的公網(wǎng)IP地址和端口號(hào)即202. X.X. 2: 5678,報(bào)文正文包括私網(wǎng)源地址、私網(wǎng)目的地址和報(bào)文內(nèi)容,私網(wǎng)源地址是容器31的私網(wǎng)IP 地址即192.168.0.100,私網(wǎng)目的地址是容器61的私網(wǎng)IP地址即192.168.0.200。
[0049] 步驟S505、所述第一虛擬網(wǎng)橋接收所述第二容器發(fā)送的第二報(bào)文,所述第二報(bào)文 W所述第一容器的公網(wǎng)IP地址為目的IP地址、所述第一容器的端口號(hào)為目的端口號(hào)、所述 第二容器的公網(wǎng)IP地址為源IP地址。
[0050] 容器61通過(guò)第二虛擬網(wǎng)橋82向容器31發(fā)送第二報(bào)文,第二報(bào)文的帖格式如表2所 示:
[0化1 ] 表2
[0化2]
[0
[0054] 由表2可知,容器61通過(guò)第二虛擬網(wǎng)橋82向容器31發(fā)送的第二報(bào)文包括報(bào)文頭和 報(bào)文正文,報(bào)文頭包括公網(wǎng)源地址和公網(wǎng)目的地址,公網(wǎng)源地址是容器61的公網(wǎng)IP地址和 端口號(hào)即202 . X. X. 2: 5678,公網(wǎng)目的地址是容器31的公網(wǎng)IP地址和端口號(hào)即202 . X. X. 1: 1234,報(bào)文正文包括私網(wǎng)源地址、私網(wǎng)目的地址和報(bào)文內(nèi)容,私網(wǎng)源地址是容器61的私網(wǎng)IP 地址即192.168.0.200,私網(wǎng)目的地址是容器31的私網(wǎng)IP地址即192.168.0.100。
[0055] 本發(fā)明實(shí)施例通過(guò)第一虛擬網(wǎng)橋向第二虛擬網(wǎng)橋發(fā)送第一消息,第二虛擬網(wǎng)橋向 第一虛擬網(wǎng)橋發(fā)送第二消息,第一消息包括有第一容器的地址信息和第一虛擬網(wǎng)橋的標(biāo)識(shí) 信息,第二消息包括第二容器的地址信息和第二虛擬網(wǎng)橋的標(biāo)識(shí)信息,標(biāo)識(shí)信息相同的第 一虛擬網(wǎng)橋和第二虛擬網(wǎng)橋?qū)?yīng)于同一個(gè)用戶,第一虛擬網(wǎng)橋根據(jù)第二消息獲取第二容器 的地址信息,第二虛擬網(wǎng)橋根據(jù)第一消息獲取第一容器的地址信息,第一虛擬網(wǎng)橋?qū)?yīng)的 第一容器根據(jù)第二容器的地址信息與第二容器通信,第二虛擬網(wǎng)橋?qū)?yīng)的第二容器根據(jù)第 一容器的地址信息與第一容器通信,由于第一虛擬網(wǎng)橋和第一容器位于第一Docker服務(wù) 器,第二虛擬網(wǎng)橋和第二容器位于第二Docker服務(wù)器,從而實(shí)現(xiàn)了分散在不同Docker服務(wù) 器上且屬于同一用戶的容器之間的正常通信,另外,容器間通信不需要通過(guò)廣播方式廣播 待發(fā)送的報(bào)文,提高了容器之間信息交互的保密性。
[0056] 圖6為本發(fā)明另一實(shí)施例提供的容器間的通信方法適用的網(wǎng)絡(luò)架構(gòu)圖。如圖6所 示,在圖4的基礎(chǔ)上,子網(wǎng)20還連接有Docker服務(wù)器91 ,Docker服務(wù)器91上設(shè)置有容器101, 容器31、容器61和容器101屬于同一個(gè)用戶即用戶A,在Docker服務(wù)器91上創(chuàng)建第S虛擬網(wǎng) 橋83,第=虛擬網(wǎng)橋83為容器101分配一個(gè)私網(wǎng)IP地址,例如192.168.0.240。在本發(fā)明實(shí)施 例中,第一虛擬網(wǎng)橋81、第二虛擬網(wǎng)橋82和第=虛擬網(wǎng)橋83可分配的私網(wǎng)地址的范圍互不 重疊,例如,第一虛擬網(wǎng)橋81可分配192.168.0.100-199范圍內(nèi)的私網(wǎng)地址,第二虛擬網(wǎng)橋 82可分配192.168.0.200-220范圍內(nèi)的私網(wǎng)地址,第S虛擬網(wǎng)橋83可分配192.168.0.222-250范圍內(nèi)的私網(wǎng)地址,且各虛擬網(wǎng)橋內(nèi)預(yù)先存儲(chǔ)有除了自身之外其他虛擬網(wǎng)橋可分配的 私網(wǎng)地址的范圍,容器31向第一虛擬網(wǎng)橋81發(fā)送請(qǐng)求報(bào)文,請(qǐng)求報(bào)文包括容器101的私網(wǎng)IP 地址192.168.0.240,該請(qǐng)求報(bào)文表示容器31請(qǐng)求與容器101通信,第一虛擬網(wǎng)橋81根據(jù)容 器101的私網(wǎng)IP地址192.168.0.240所屬的范圍確定對(duì)應(yīng)的虛擬網(wǎng)橋,由于192.168.0.240 屬于網(wǎng)段192.168.0.222-250,192.168.0.222-250是第S虛擬網(wǎng)橋83可分配的網(wǎng)段,則第 一虛擬網(wǎng)橋81直接向第=虛擬網(wǎng)橋83發(fā)送第一消息,第一消息包括容器31的地址信息和第 一虛擬網(wǎng)橋81的標(biāo)識(shí)信息,第=虛擬網(wǎng)橋83確定第一虛擬網(wǎng)橋81的標(biāo)識(shí)信息和自身的標(biāo)識(shí) 信息相同后,將容器31的地址信息發(fā)送給容器101,容器101依據(jù)容器31的地址信息向容器 31發(fā)送報(bào)文,容器31和容器101之間的通信交互過(guò)程W及相應(yīng)的報(bào)文格式同理于容器31和 容器61之間的通信交互過(guò)程W及相應(yīng)的報(bào)文格式,此處不再寶述。
[0057] 本發(fā)明實(shí)施例各虛擬網(wǎng)橋可分配的私網(wǎng)地址的范圍互不重疊,虛擬網(wǎng)橋根據(jù)容器 的私網(wǎng)地址確定該私網(wǎng)地址所屬的網(wǎng)段,根據(jù)該網(wǎng)段確定虛擬網(wǎng)橋,向該虛擬網(wǎng)橋直接發(fā) 送包括容器地址信息的消息,避免了用廣播的方式發(fā)送包括容器地址信息的消息,避免了 子網(wǎng)內(nèi)的廣播風(fēng)暴。
[0058] 圖7為本發(fā)明實(shí)施例提供的容器間的通信裝置的結(jié)構(gòu)圖。本發(fā)明實(shí)施例提供的容 器間的通信裝置可W執(zhí)行容器間的通信方法實(shí)施例提供的處理流程,如圖7所示,容器間的 通信裝置70包括發(fā)送模塊71和接收模塊72,其中,發(fā)送模塊71用于向子網(wǎng)內(nèi)除所述第一虛 擬網(wǎng)橋外的第二虛擬網(wǎng)橋發(fā)送第一消息,所述第一消息包括第一容器的地址信息和所述第 一虛擬網(wǎng)橋的標(biāo)識(shí)信息;接收模塊72用于接收所述第二虛擬網(wǎng)橋發(fā)送的第二消息,所述第 二消息包括第二容器的地址信息和所述第二虛擬網(wǎng)橋的標(biāo)識(shí)信息;所述發(fā)送模塊71還用于 所述第一虛擬網(wǎng)橋的標(biāo)識(shí)信息和所述第二虛擬網(wǎng)橋的標(biāo)識(shí)信息相同時(shí),將所述第二容器的 地址信息發(fā)送給第一容器,W使所述第一容器依據(jù)所述第二容器的地址信息與第二容器通 信,具有相同的標(biāo)識(shí)信息的虛擬網(wǎng)橋?qū)?yīng)于同一用戶;其中,所述第一虛擬網(wǎng)橋和所述第一 容器位于第一 Docker服務(wù)器,所述第二虛擬網(wǎng)橋和所述第二容器位于第二Docker服務(wù)器。
[0059] 本發(fā)明實(shí)施例提供的容器間的通信裝置可W具體用于執(zhí)行上述圖1所提供的方法 實(shí)施例,具體功能此處不再寶述。
[0060] 本發(fā)明實(shí)施例通過(guò)第一虛擬網(wǎng)橋向第二虛擬網(wǎng)橋發(fā)送第一消息,第二虛擬網(wǎng)橋向 第一虛擬網(wǎng)橋發(fā)送第二消息,第一消息包括有第一容器的地址信息和第一虛擬網(wǎng)橋的標(biāo)識(shí) 信息,第二消息包括第二容器的地址信息和第二虛擬網(wǎng)橋的標(biāo)識(shí)信息,標(biāo)識(shí)信息相同的第 一虛擬網(wǎng)橋和第二虛擬網(wǎng)橋?qū)?yīng)于同一個(gè)用戶,第一虛擬網(wǎng)橋根據(jù)第二消息獲取第二容器 的地址信息,第二虛擬網(wǎng)橋根據(jù)第一消息獲取第一容器的地址信息,第一虛擬網(wǎng)橋?qū)?yīng)的 第一容器根據(jù)第二容器的地址信息與第二容器通信,第二虛擬網(wǎng)橋?qū)?yīng)的第二容器根據(jù)第 一容器的地址信息與第一容器通信,由于第一虛擬網(wǎng)橋和第一容器位于第一Docker服務(wù) 器,第二虛擬網(wǎng)橋和第二容器位于第二Docker服務(wù)器,從而實(shí)現(xiàn)了分散在不同Docker服務(wù) 器上且屬于同一用戶的容器之間的正常通信,另外,容器間通信不需要通過(guò)廣播方式廣播 待發(fā)送的報(bào)文,提高了容器之間信息交互的保密性。
[0061] 在上述實(shí)施例的基礎(chǔ)上,所述第一容器的地址信息包括所述第一容器的公網(wǎng)IP地 址和所述第一容器的端口號(hào);所述第二容器的地址信息包括所述第二容器的公網(wǎng)IP地址和 所述第二容器的端口號(hào)。
[0062] 所述第一容器的地址信息還包括所述第一虛擬網(wǎng)橋分配給所述第一容器的第一 私網(wǎng)地址;所述第二容器的地址信息還包括所述第二虛擬網(wǎng)橋分配給所述第二容器的第二 私網(wǎng)地址。
[0063] 接收模塊72還用于接收所述第一容器發(fā)送的第一報(bào)文,所述第一報(bào)文W所述第二 容器的公網(wǎng)IP地址為目的IP地址、所述第二容器的端口號(hào)為目的端口號(hào)、所述第一容器的 公網(wǎng)IP地址為源IP地址。
[0064] 接收模塊72還用于接收所述第二容器發(fā)送的第二報(bào)文,所述第二報(bào)文W所述第一 容器的公網(wǎng)IP地址為目的IP地址、所述第一容器的端口號(hào)為目的端口號(hào)、所述第二容器的 公網(wǎng)IP地址為源IP地址。
[0065] 本發(fā)明實(shí)施例提供的容器間的通信裝置可W具體用于執(zhí)行上述圖2所提供的方法 實(shí)施例,具體功能此處不再寶述。
[0066] 本發(fā)明實(shí)施例通過(guò)第一虛擬網(wǎng)橋向第二虛擬網(wǎng)橋發(fā)送第一消息,第二虛擬網(wǎng)橋向 第一虛擬網(wǎng)橋發(fā)送第二消息,第一消息包括有第一容器的地址信息和第一虛擬網(wǎng)橋的標(biāo)識(shí) 信息,第二消息包括第二容器的地址信息和第二虛擬網(wǎng)橋的標(biāo)識(shí)信息,標(biāo)識(shí)信息相同的第 一虛擬網(wǎng)橋和第二虛擬網(wǎng)橋?qū)?yīng)于同一個(gè)用戶,第一虛擬網(wǎng)橋根據(jù)第二消息獲取第二容器 的地址信息,第二虛擬網(wǎng)橋根據(jù)第一消息獲取第一容器的地址信息,第一虛擬網(wǎng)橋?qū)?yīng)的 第一容器根據(jù)第二容器的地址信息與第二容器通信,第二虛擬網(wǎng)橋?qū)?yīng)的第二容器根據(jù)第 一容器的地址信息與第一容器通信,由于第一虛擬網(wǎng)橋和第一容器位于第一Docker服務(wù) 器,第二虛擬網(wǎng)橋和第二容器位于第二Docker服務(wù)器,從而實(shí)現(xiàn)了分散在不同Docker服務(wù) 器上且屬于同一用戶的容器之間的正常通信,另外,容器間通信不需要通過(guò)廣播方式廣播 待發(fā)送的報(bào)文,提高了容器之間信息交互的保密性。
[0067] 綜上所述,本發(fā)明實(shí)施例通過(guò)第一虛擬網(wǎng)橋向第二虛擬網(wǎng)橋發(fā)送第一消息,第二 虛擬網(wǎng)橋向第一虛擬網(wǎng)橋發(fā)送第二消息,第一消息包括有第一容器的地址信息和第一虛擬 網(wǎng)橋的標(biāo)識(shí)信息,第二消息包括第二容器的地址信息和第二虛擬網(wǎng)橋的標(biāo)識(shí)信息,標(biāo)識(shí)信 息相同的第一虛擬網(wǎng)橋和第二虛擬網(wǎng)橋?qū)?yīng)于同一個(gè)用戶,第一虛擬網(wǎng)橋根據(jù)第二消息獲 取第二容器的地址信息,第二虛擬網(wǎng)橋根據(jù)第一消息獲取第一容器的地址信息,第一虛擬 網(wǎng)橋?qū)?yīng)的第一容器根據(jù)第二容器的地址信息與第二容器通信,第二虛擬網(wǎng)橋?qū)?yīng)的第二 容器根據(jù)第一容器的地址信息與第一容器通信,由于第一虛擬網(wǎng)橋和第一容器位于第一 Docker服務(wù)器,第二虛擬網(wǎng)橋和第二容器位于第二Docker服務(wù)器,從而實(shí)現(xiàn)了分散在不同 Docker服務(wù)器上且屬于同一用戶的容器之間的正常通信,另外,容器間通信不需要通過(guò)廣 播方式廣播待發(fā)送的報(bào)文,提高了容器之間信息交互的保密性;各虛擬網(wǎng)橋可分配的私網(wǎng) 地址的范圍互不重疊,虛擬網(wǎng)橋根據(jù)容器的私網(wǎng)地址確定該私網(wǎng)地址所屬的網(wǎng)段,根據(jù)該 網(wǎng)段確定虛擬網(wǎng)橋,向該虛擬網(wǎng)橋直接發(fā)送包括容器地址信息的消息,避免了用廣播的方 式發(fā)送包括容器地址信息的消息,避免了子網(wǎng)內(nèi)的廣播風(fēng)暴。
[0068] 在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所掲露的裝置和方法,可W通過(guò)其 它的方式實(shí)現(xiàn)。例如,W上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅 僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可W有另外的劃分方式,例如多個(gè)單元或組件可W結(jié) 合或者可W集成到另一個(gè)系統(tǒng),或一些特征可W忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的 相互之間的禪合或直接禪合或通信連接可W是通過(guò)一些接口,裝置或單元的間接禪合或通 信連接,可W是電性,機(jī)械或其它的形式。
[0069] 所述作為分離部件說(shuō)明的單元可W是或者也可W不是物理上分開(kāi)的,作為單元顯 示的部件可W是或者也可W不是物理單元,即可W位于一個(gè)地方,或者也可W分布到多個(gè) 網(wǎng)絡(luò)單元上??蒞根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目 的。
[0070] 另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可W集成在一個(gè)處理單元中,也可W 是各個(gè)單元單獨(dú)物理存在,也可W兩個(gè)或兩個(gè)W上單元集成在一個(gè)單元中。上述集成的單 元既可W采用硬件的形式實(shí)現(xiàn),也可W采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
[0071] 上述W軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可W存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存 儲(chǔ)介質(zhì)中。上述軟件功能單元存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用W使得一臺(tái)計(jì)算機(jī) 設(shè)備(可W是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個(gè) 實(shí)施例所述方法的部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(Readonly Memoir ,ROM)、隨機(jī)存取存儲(chǔ)器 (Random Access Memory ,RAM)、磁碟或者光盤等各種 可W存儲(chǔ)程序代碼的介質(zhì)。
[0072] 本領(lǐng)域技術(shù)人員可W清楚地了解到,為描述的方便和簡(jiǎn)潔,僅W上述各功能模塊 的劃分進(jìn)行舉例說(shuō)明,實(shí)際應(yīng)用中,可W根據(jù)需要而將上述功能分配由不同的功能模塊完 成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,W完成W上描述的全部或者部分功能。上 述描述的裝置的具體工作過(guò)程,可W參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再寶述。
[0073] 最后應(yīng)說(shuō)明的是:W上各實(shí)施例僅用W說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡 管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依 然可W對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn) 行等同替換;而運(yùn)些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù) 方案的范圍。
【主權(quán)項(xiàng)】
1. 一種容器間的通信方法,其特征在于,包括: 第一虛擬網(wǎng)橋向子網(wǎng)內(nèi)除所述第一虛擬網(wǎng)橋外的第二虛擬網(wǎng)橋發(fā)送第一消息,所述第 一消息包括第一容器的地址信息和所述第一虛擬網(wǎng)橋的標(biāo)識(shí)信息; 所述第一虛擬網(wǎng)橋接收所述第二虛擬網(wǎng)橋發(fā)送的第二消息,所述第二消息包括第二容 器的地址信息和所述第二虛擬網(wǎng)橋的標(biāo)識(shí)信息; 若所述第一虛擬網(wǎng)橋的標(biāo)識(shí)信息和所述第二虛擬網(wǎng)橋的標(biāo)識(shí)信息相同,則所述第一虛 擬網(wǎng)橋?qū)⑺龅诙萜鞯牡刂沸畔l(fā)送給第一容器,以使所述第一容器依據(jù)所述第二容器 的地址信息與第二容器通信,具有相同的標(biāo)識(shí)信息的虛擬網(wǎng)橋?qū)?yīng)于同一用戶; 其中,所述第一虛擬網(wǎng)橋和所述第一容器位于第一Docker服務(wù)器,所述第二虛擬網(wǎng)橋 和所述第二容器位于第二Docker服務(wù)器。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一容器的地址信息包括所述第一容 器的公網(wǎng)IP地址和所述第一容器的端口號(hào); 所述第二容器的地址信息包括所述第二容器的公網(wǎng)IP地址和所述第二容器的端口號(hào)。3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述第一容器的地址信息還包括所述第一 虛擬網(wǎng)橋分配給所述第一容器的第一私網(wǎng)地址; 所述第二容器的地址信息還包括所述第二虛擬網(wǎng)橋分配給所述第二容器的第二私網(wǎng) 地址。4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述第一虛擬網(wǎng)橋?qū)⑺龅诙萜鞯牡刂?信息發(fā)送給第一容器之后,還包括: 所述第一虛擬網(wǎng)橋接收所述第一容器發(fā)送的第一報(bào)文,所述第一報(bào)文以所述第二容器 的公網(wǎng)IP地址為目的IP地址、所述第二容器的端口號(hào)為目的端口號(hào)、所述第一容器的公網(wǎng) IP地址為源IP地址。5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括: 所述第一虛擬網(wǎng)橋接收所述第二容器發(fā)送的第二報(bào)文,所述第二報(bào)文以所述第一容器 的公網(wǎng)IP地址為目的IP地址、所述第一容器的端口號(hào)為目的端口號(hào)、所述第二容器的公網(wǎng) IP地址為源IP地址。6. -種容器間的通信裝置,其特征在于,包括: 發(fā)送模塊,用于向子網(wǎng)內(nèi)除所述第一虛擬網(wǎng)橋外的第二虛擬網(wǎng)橋發(fā)送第一消息,所述 第一消息包括第一容器的地址信息和所述第一虛擬網(wǎng)橋的標(biāo)識(shí)信息; 接收模塊,用于接收所述第二虛擬網(wǎng)橋發(fā)送的第二消息,所述第二消息包括第二容器 的地址信息和所述第二虛擬網(wǎng)橋的標(biāo)識(shí)信息; 所述發(fā)送模塊,還用于所述第一虛擬網(wǎng)橋的標(biāo)識(shí)信息和所述第二虛擬網(wǎng)橋的標(biāo)識(shí)信息 相同時(shí),將所述第二容器的地址信息發(fā)送給第一容器,以使所述第一容器依據(jù)所述第二容 器的地址信息與第二容器通信,具有相同的標(biāo)識(shí)信息的虛擬網(wǎng)橋?qū)?yīng)于同一用戶; 其中,所述第一虛擬網(wǎng)橋和所述第一容器位于第一Docker服務(wù)器,所述第二虛擬網(wǎng)橋 和所述第二容器位于第二Docker服務(wù)器。7. 根據(jù)權(quán)利要求6所述的容器間的通信裝置,其特征在于,所述第一容器的地址信息包 括所述第一容器的公網(wǎng)IP地址和所述第一容器的端口號(hào); 所述第二容器的地址信息包括所述第二容器的公網(wǎng)IP地址和所述第二容器的端口號(hào)。8. 根據(jù)權(quán)利要求7所述的容器間的通信裝置,其特征在于,所述第一容器的地址信息還 包括所述第一虛擬網(wǎng)橋分配給所述第一容器的第一私網(wǎng)地址; 所述第二容器的地址信息還包括所述第二虛擬網(wǎng)橋分配給所述第二容器的第二私網(wǎng) 地址。9. 根據(jù)權(quán)利要求8所述的容器間的通信裝置,其特征在于,所述接收模塊還用于接收所 述第一容器發(fā)送的第一報(bào)文,所述第一報(bào)文以所述第二容器的公網(wǎng)IP地址為目的IP地址、 所述第二容器的端口號(hào)為目的端口號(hào)、所述第一容器的公網(wǎng)IP地址為源IP地址。10. 根據(jù)權(quán)利要求9所述的容器間的通信裝置,其特征在于,所述接收模還用于接收所 述第二容器發(fā)送的第二報(bào)文,所述第二報(bào)文以所述第一容器的公網(wǎng)IP地址為目的IP地址、 所述第一容器的端口號(hào)為目的端口號(hào)、所述第二容器的公網(wǎng)IP地址為源IP地址。
【文檔編號(hào)】H04L29/08GK105847108SQ201610350192
【公開(kāi)日】2016年8月10日
【申請(qǐng)日】2016年5月24日
【發(fā)明人】田新雪, 馬書惠
【申請(qǐng)人】中國(guó)聯(lián)合網(wǎng)絡(luò)通信集團(tuán)有限公司