容器间的通信方法及装置的制造方法

文档序号:10492048阅读:355来源:国知局
容器间的通信方法及装置的制造方法
【专利摘要】本发明实施例提供一种容器间的通信方法及装置。该方法包括:第一虚拟网桥向子网内除第一虚拟网桥外的第二虚拟网桥发送第一消息,第一消息包括第一容器的地址信息和第一虚拟网桥的标识信息;第一虚拟网桥接收第二虚拟网桥发送的第二消息,第二消息包括第二容器的地址信息和第二虚拟网桥的标识信息;若第一虚拟网桥的标识信息和第二虚拟网桥的标识信息相同,则第一虚拟网桥将第二容器的地址信息发送给第一容器,以使第一容器依据第二容器的地址信息与第二容器通信。本发明实施例实现了分散在不同Docker服务器上且属于同一用户的容器之间的正常通信,另外,容器间通信不需要通过广播方式广播待发送的报文,提高了容器之间信息交互的保密性。
【专利说明】
容器间的通信方法及装置
技术领域
[0001] 本发明实施例设及通信技术领域,尤其设及一种容器间的通信方法及装置。
【背景技术】
[0002] Docker是一个开源的应用容器引擎,在物理主机上安装Docker后,可在Docker的 基础上承载多个容器,多个容器之间相互隔离,多个容器共享物理主机的操作系统,各容器 可放置并执行不同的应用程序。
[0003] 现有技术中,除了广播通信方式,分散在不同Docker服务器上且属于同一用户的 容器之间无法正常通信,而广播通信方式会降低容器之间信息交互的保密性。

【发明内容】

[0004] 本发明实施例提供一种容器间的通信方法及装置,W实现分散在不同Docker服务 器上且属于同一用户的容器之间的正常通信。
[0005] 本发明实施例的一个方面是提供一种容器间的通信方法,包括:
[0006] 第一虚拟网桥向子网内除所述第一虚拟网桥外的第二虚拟网桥发送第一消息,所 述第一消息包括第一容器的地址信息和所述第一虚拟网桥的标识信息;
[0007] 所述第一虚拟网桥接收所述第二虚拟网桥发送的第二消息,所述第二消息包括第 二容器的地址信息和所述第二虚拟网桥的标识信息;
[000引若所述第一虚拟网桥的标识信息和所述第二虚拟网桥的标识信息相同,则所述第 一虚拟网桥将所述第二容器的地址信息发送给第一容器,W使所述第一容器依据所述第二 容器的地址信息与第二容器通信,具有相同的标识信息的虚拟网桥对应于同一用户;
[0009] 其中,所述第一虚拟网桥和所述第一容器位于第一Docker服务器,所述第二虚拟 网桥和所述第二容器位于第二Docker服务器。
[0010] 本发明实施例的另一个方面是提供一种容器间的通信装置,包括:
[0011] 发送模块,用于向子网内除所述第一虚拟网桥外的第二虚拟网桥发送第一消息, 所述第一消息包括第一容器的地址信息和所述第一虚拟网桥的标识信息;
[0012] 接收模块,用于接收所述第二虚拟网桥发送的第二消息,所述第二消息包括第二 容器的地址信息和所述第二虚拟网桥的标识信息;
[0013] 所述发送模块,还用于所述第一虚拟网桥的标识信息和所述第二虚拟网桥的标识 信息相同时,将所述第二容器的地址信息发送给第一容器,W使所述第一容器依据所述第 二容器的地址信息与第二容器通信,具有相同的标识信息的虚拟网桥对应于同一用户;
[0014] 其中,所述第一虚拟网桥和所述第一容器位于第一Docker服务器,所述第二虚拟 网桥和所述第二容器位于第二Docker服务器。
[0015] 本发明实施例提供的容器间的通信方法及装置,通过第一虚拟网桥向第二虚拟网 桥发送第一消息,第二虚拟网桥向第一虚拟网桥发送第二消息,第一消息包括有第一容器 的地址信息和第一虚拟网桥的标识信息,第二消息包括第二容器的地址信息和第二虚拟网 桥的标识信息,标识信息相同的第一虚拟网桥和第二虚拟网桥对应于同一个用户,第一虚 拟网桥根据第二消息获取第二容器的地址信息,第二虚拟网桥根据第一消息获取第一容器 的地址信息,第一虚拟网桥对应的第一容器根据第二容器的地址信息与第二容器通信,第 二虚拟网桥对应的第二容器根据第一容器的地址信息与第一容器通信,由于第一虚拟网桥 和第一容器位于第一 Docker服务器,第二虚拟网桥和第二容器位于第二Docker服务器,从 而实现了分散在不同Docker服务器上且属于同一用户的容器之间的正常通信,另外,容器 间通信不需要通过广播方式广播待发送的报文,提高了容器之间信息交互的保密性。
【附图说明】
[0016] 图1为现有技术中Docker服务器与子网的连接示意图;
[0017] 图2为现有技术中Docker服务器与子网的连接示意图;
[0018] 图3为本发明实施例提供的容器间的通信方法流程图;
[0019] 图4为本发明实施例提供的容器间的通信方法适用的网络架构图;
[0020] 图5为本发明另一实施例提供的容器间的通信方法流程图;
[0021] 图6为本发明另一实施例提供的容器间的通信方法适用的网络架构图;
[0022] 图7为本发明实施例提供的容器间的通信装置的结构图。
【具体实施方式】
[0023] 图1为现有技术中Docker服务器与子网的连接示意图。如图1所示,Docker服务器 21属于子网20,Docker服务器21包括容器31和容器32,容器31内设有虚拟网卡41,容器32内 设有虚拟网卡42,虚拟网卡41和虚拟网卡42分别与网桥43连接,网桥43与Docker服务器21 的物理网卡44连接。网桥43分别为容器31和容器32分配互不相同的私网地址,当容器31或 容器32访问子网20之外的设备时,容器31或容器32向网桥43发送报文,报文包括私网地址, 网桥43将私网地址转换为Docker服务器21的公网地址将报文发送出去。另外,容器31和容 器32分别对应Docker服务器21的不同端口,子网20之外的设备根据Docker服务器21的公网 地址和容器的端口号可向Docker服务器21上该端口号对应的容器发送报文。
[0024] 图2为现有技术中Docker服务器与子网的连接示意图。如图2所示,在图1的基础 上,Docker服务器51属于子网20 ,Docker服务器51包括容器61和容器62,容器61内设有虚拟 网卡71,容器62内设有虚拟网卡72,虚拟网卡71和虚拟网卡72分别与网桥73连接,网桥73与 Docker服务器51的物理网卡74连接。假设容器31和容器61属于用户A,容器32和容器62属于 用户B,即同一用户的容器分散在不同的Docker服务器上。
[0025] 图3为本发明实施例提供的容器间的通信方法流程图;图4为本发明实施例提供的 容器间的通信方法适用的网络架构图。本发明实施例针对现有技术中,除了广播通信方式, 分散在不同Docker服务器上且属于同一用户的容器之间无法正常通信,而广播通信方式会 降低容器之间信息交互的保密性,提供了容器间的通信方法,该方法具体步骤如下:
[0026] 步骤S301、第一虚拟网桥向子网内除所述第一虚拟网桥外的第二虚拟网桥发送第 一消息,所述第一消息包括第一容器的地址信息和所述第一虚拟网桥的标识信息;
[0027] 本发明实施例提供了分散在不同的Docker服务器上的属于同一用户的容器之间 的通信方法,即如图2所示的容器31和容器61之间、容器32和容器62之间的通信方法,本发 明实施例W容器31和容器61之间的通信方法为例进行介绍。
[0028]如图4所示,容器31和容器61属于同一个用户即用户A,且分散在不同的Docker服 务器即Docker服务器21和Docker服务器51,在Docker服务器21上创建第一虚拟网桥81,在 Docker服务器51上创建第二虚拟网桥82,第一虚拟网桥81和第二虚拟网桥82属于用户A,创 建虚拟网桥的方法可W是现有技术中的任何一种方法。第一虚拟网桥81为容器31分配一个 私网IP地址,例如192.168.0.100;第二虚拟网桥82为容器61分配一个私网IP地址,例如 192.168.0.200。
[00巧]由于Docker服务器21和Docker服务器51属于同一个子网,Docker服务器21和 Docker服务器51可通过同一个子网广播消息,具体地,Docker服务器21中的第一虚拟网桥 81广播第一消息,该第一消息被第二虚拟网桥82接收,第一消息包括第一容器的地址信息 和所述第一虚拟网桥的标识信息,其中,所述第一容器的地址信息包括所述第一容器的公 网IP地址和所述第一容器的端口号,具体地,第一消息包括报文头部分和报文正文部分,报 文头部分包括容器31的公网IP地址和容器31的端口号,容器31的公网IP地址是Docker服务 器21的IP地址,例如202. X.X.1,容器31的端口号是容器31在Docker服务器21上的端口号, 例如1234;报文正文部分包括第一虚拟网桥81的标识信息。
[0030]步骤S302、所述第一虚拟网桥接收所述第二虚拟网桥发送的第二消息,所述第二 消息包括第二容器的地址信息和所述第二虚拟网桥的标识信息;
[0031 ]由于Docker服务器21和Docker服务器51属于同一个子网,Docker服务器21和 Docker服务器51可通过同一个子网广播消息,同理,Docker服务器51中的第二虚拟网桥82 广播第二消息,该第二消息被第一虚拟网桥81接收,第二消息包括第二容器的地址信息和 所述第二虚拟网桥的标识信息,其中,所述第二容器的地址信息包括所述第二容器的公网 IP地址和所述第二容器的端口号,具体地,第二消息包括报文头部分和报文正文部分,报文 头部分包括容器61的公网IP地址和容器61的端口号,容器61的公网IP地址是Docker服务器 51的IP地址,例如202. X. X. 2,容器61的端口号是容器61在Docker服务器51上的端口号,例 如5678;报文正文部分包括第二虚拟网桥82的标识信息。
[0032] 步骤S303、若所述第一虚拟网桥的标识信息和所述第二虚拟网桥的标识信息相 同,则所述第一虚拟网桥将所述第二容器的地址信息发送给第一容器,W使所述第一容器 依据所述第二容器的地址信息与第二容器通信,具有相同的标识信息的虚拟网桥对应于同 一用户。
[0033] 其中,所述第一虚拟网桥和所述第一容器位于第一Docker服务器,所述第二虚拟 网桥和所述第二容器位于第二Docker服务器。
[0034] 在本发明实施例中,第一虚拟网桥81接收第二虚拟网桥82广播的第二消息,第二 虚拟网桥82接收第一虚拟网桥81广播的第一消息,由于第二消息中包括第二虚拟网桥82的 标识信息,第一消息中包括第一虚拟网桥81的标识信息,由于第二虚拟网桥82和第一虚拟 网桥81属于同一个用户,则第二虚拟网桥82和第一虚拟网桥81的标识信息相同,表明第二 虚拟网桥82对应的容器61和第一虚拟网桥81对应的容器31属于同一个用户,第二虚拟网桥 82记录第一消息中容器31的地址信息,第一虚拟网桥81记录第二消息中容器61的地址信 息,W便后续容器31和容器61通信。具体地,第一虚拟网桥81将容器61的地址信息发送给容 器31,第二虚拟网桥82将容器31的地址信息发送给容器61,容器31根据容器61的地址信息 便可W向容器61发送信息,容器61根据容器31的地址信息便可W向容器31发送信息,实现 了容器31和容器61之间的通信。
[0035] 本发明实施例通过第一虚拟网桥向第二虚拟网桥发送第一消息,第二虚拟网桥向 第一虚拟网桥发送第二消息,第一消息包括有第一容器的地址信息和第一虚拟网桥的标识 信息,第二消息包括第二容器的地址信息和第二虚拟网桥的标识信息,标识信息相同的第 一虚拟网桥和第二虚拟网桥对应于同一个用户,第一虚拟网桥根据第二消息获取第二容器 的地址信息,第二虚拟网桥根据第一消息获取第一容器的地址信息,第一虚拟网桥对应的 第一容器根据第二容器的地址信息与第二容器通信,第二虚拟网桥对应的第二容器根据第 一容器的地址信息与第一容器通信,由于第一虚拟网桥和第一容器位于第一Docker服务 器,第二虚拟网桥和第二容器位于第二Docker服务器,从而实现了分散在不同Docker服务 器上且属于同一用户的容器之间的正常通信,另外,容器间通信不需要通过广播方式广播 待发送的报文,提高了容器之间信息交互的保密性。
[0036] 图5为本发明另一实施例提供的容器间的通信方法流程图。在图3对应的实施例的 基础上,本发明实施例提供的容器间的通信方法具体步骤如下:
[0037] 步骤S501、第一虚拟网桥向子网内除所述第一虚拟网桥外的第二虚拟网桥发送第 一消息,所述第一消息包括第一容器的地址信息和所述第一虚拟网桥的标识信息;
[0038] 步骤S502、所述第一虚拟网桥接收所述第二虚拟网桥发送的第二消息,所述第二 消息包括第二容器的地址信息和所述第二虚拟网桥的标识信息;
[0039] 步骤S503、若所述第一虚拟网桥的标识信息和所述第二虚拟网桥的标识信息相 同,则所述第一虚拟网桥将所述第二容器的地址信息发送给第一容器,W使所述第一容器 依据所述第二容器的地址信息与第二容器通信,具有相同的标识信息的虚拟网桥对应于同 一用户;
[0040] 步骤S501-步骤S503分别与步骤S301-步骤S303-致,具体方法此处不再寶述。
[0041] 步骤S504、所述第一虚拟网桥接收所述第一容器发送的第一报文,所述第一报文 W所述第二容器的公网IP地址为目的IP地址、所述第二容器的端口号为目的端口号、所述 第一容器的公网IP地址为源IP地址;
[0042] 在上述实施例的基础上,所述第一容器的地址信息还包括所述第一虚拟网桥分配 给所述第一容器的第一私网地址;所述第二容器的地址信息还包括所述第二虚拟网桥分配 给所述第二容器的第二私网地址。
[0043] 在本发明实施例中,第一虚拟网桥81发送的第一消息包括报文头部分和报文正文 部分,报文头部分包括容器31的公网IP地址202. X. X. 1、容器31的端口号1234和第一虚拟网 桥81分配给容器31的私网IP地址192.168.0.100;报文正文部分包括第一虚拟网桥81的标 识信息。第二虚拟网桥82发送的第二消息包括报文头部分和报文正文部分,报文头部分包 括容器61的公网IP地址202. X.X. 2、容器61的端口号5678和第二虚拟网桥82分配给容器61 的私网IP地址192.168.0.200;报文正文部分包括第二虚拟网桥82的标识信息。
[0044] 第一虚拟网桥81将容器61的公网IP地址202. X.X. 2、容器61的端口号5678和容器 61的私网IP地址192.168.0.200发送给容器31,第二虚拟网桥82将容器31的公网IP地址 202. X. X. 1、容器31的端口号1234和容器31的私网IP地址192.168.0.100发送给容器61。
[0045] 容器31通过第一虚拟网桥81向容器61发送第一报文,第一报文的帖格式如表1所 示:
[0046] 表1
[0047]
[004引由表1可知,容器31通过第一虚拟网桥81向容器61发送的第一报文包括报文头和 报文正文,报文头包括公网源地址和公网目的地址,公网源地址是容器31的公网IP地址和 端口号即202. X.X. 1:1234,公网目的地址是容器61的公网IP地址和端口号即202. X.X. 2: 5678,报文正文包括私网源地址、私网目的地址和报文内容,私网源地址是容器31的私网IP 地址即192.168.0.100,私网目的地址是容器61的私网IP地址即192.168.0.200。
[0049] 步骤S505、所述第一虚拟网桥接收所述第二容器发送的第二报文,所述第二报文 W所述第一容器的公网IP地址为目的IP地址、所述第一容器的端口号为目的端口号、所述 第二容器的公网IP地址为源IP地址。
[0050] 容器61通过第二虚拟网桥82向容器31发送第二报文,第二报文的帖格式如表2所 示:
[0化1 ] 表2
[0化2]
[0
[0054] 由表2可知,容器61通过第二虚拟网桥82向容器31发送的第二报文包括报文头和 报文正文,报文头包括公网源地址和公网目的地址,公网源地址是容器61的公网IP地址和 端口号即202 . X. X. 2: 5678,公网目的地址是容器31的公网IP地址和端口号即202 . X. X. 1: 1234,报文正文包括私网源地址、私网目的地址和报文内容,私网源地址是容器61的私网IP 地址即192.168.0.200,私网目的地址是容器31的私网IP地址即192.168.0.100。
[0055] 本发明实施例通过第一虚拟网桥向第二虚拟网桥发送第一消息,第二虚拟网桥向 第一虚拟网桥发送第二消息,第一消息包括有第一容器的地址信息和第一虚拟网桥的标识 信息,第二消息包括第二容器的地址信息和第二虚拟网桥的标识信息,标识信息相同的第 一虚拟网桥和第二虚拟网桥对应于同一个用户,第一虚拟网桥根据第二消息获取第二容器 的地址信息,第二虚拟网桥根据第一消息获取第一容器的地址信息,第一虚拟网桥对应的 第一容器根据第二容器的地址信息与第二容器通信,第二虚拟网桥对应的第二容器根据第 一容器的地址信息与第一容器通信,由于第一虚拟网桥和第一容器位于第一Docker服务 器,第二虚拟网桥和第二容器位于第二Docker服务器,从而实现了分散在不同Docker服务 器上且属于同一用户的容器之间的正常通信,另外,容器间通信不需要通过广播方式广播 待发送的报文,提高了容器之间信息交互的保密性。
[0056] 图6为本发明另一实施例提供的容器间的通信方法适用的网络架构图。如图6所 示,在图4的基础上,子网20还连接有Docker服务器91 ,Docker服务器91上设置有容器101, 容器31、容器61和容器101属于同一个用户即用户A,在Docker服务器91上创建第S虚拟网 桥83,第=虚拟网桥83为容器101分配一个私网IP地址,例如192.168.0.240。在本发明实施 例中,第一虚拟网桥81、第二虚拟网桥82和第=虚拟网桥83可分配的私网地址的范围互不 重叠,例如,第一虚拟网桥81可分配192.168.0.100-199范围内的私网地址,第二虚拟网桥 82可分配192.168.0.200-220范围内的私网地址,第S虚拟网桥83可分配192.168.0.222-250范围内的私网地址,且各虚拟网桥内预先存储有除了自身之外其他虚拟网桥可分配的 私网地址的范围,容器31向第一虚拟网桥81发送请求报文,请求报文包括容器101的私网IP 地址192.168.0.240,该请求报文表示容器31请求与容器101通信,第一虚拟网桥81根据容 器101的私网IP地址192.168.0.240所属的范围确定对应的虚拟网桥,由于192.168.0.240 属于网段192.168.0.222-250,192.168.0.222-250是第S虚拟网桥83可分配的网段,则第 一虚拟网桥81直接向第=虚拟网桥83发送第一消息,第一消息包括容器31的地址信息和第 一虚拟网桥81的标识信息,第=虚拟网桥83确定第一虚拟网桥81的标识信息和自身的标识 信息相同后,将容器31的地址信息发送给容器101,容器101依据容器31的地址信息向容器 31发送报文,容器31和容器101之间的通信交互过程W及相应的报文格式同理于容器31和 容器61之间的通信交互过程W及相应的报文格式,此处不再寶述。
[0057] 本发明实施例各虚拟网桥可分配的私网地址的范围互不重叠,虚拟网桥根据容器 的私网地址确定该私网地址所属的网段,根据该网段确定虚拟网桥,向该虚拟网桥直接发 送包括容器地址信息的消息,避免了用广播的方式发送包括容器地址信息的消息,避免了 子网内的广播风暴。
[0058] 图7为本发明实施例提供的容器间的通信装置的结构图。本发明实施例提供的容 器间的通信装置可W执行容器间的通信方法实施例提供的处理流程,如图7所示,容器间的 通信装置70包括发送模块71和接收模块72,其中,发送模块71用于向子网内除所述第一虚 拟网桥外的第二虚拟网桥发送第一消息,所述第一消息包括第一容器的地址信息和所述第 一虚拟网桥的标识信息;接收模块72用于接收所述第二虚拟网桥发送的第二消息,所述第 二消息包括第二容器的地址信息和所述第二虚拟网桥的标识信息;所述发送模块71还用于 所述第一虚拟网桥的标识信息和所述第二虚拟网桥的标识信息相同时,将所述第二容器的 地址信息发送给第一容器,W使所述第一容器依据所述第二容器的地址信息与第二容器通 信,具有相同的标识信息的虚拟网桥对应于同一用户;其中,所述第一虚拟网桥和所述第一 容器位于第一 Docker服务器,所述第二虚拟网桥和所述第二容器位于第二Docker服务器。
[0059] 本发明实施例提供的容器间的通信装置可W具体用于执行上述图1所提供的方法 实施例,具体功能此处不再寶述。
[0060] 本发明实施例通过第一虚拟网桥向第二虚拟网桥发送第一消息,第二虚拟网桥向 第一虚拟网桥发送第二消息,第一消息包括有第一容器的地址信息和第一虚拟网桥的标识 信息,第二消息包括第二容器的地址信息和第二虚拟网桥的标识信息,标识信息相同的第 一虚拟网桥和第二虚拟网桥对应于同一个用户,第一虚拟网桥根据第二消息获取第二容器 的地址信息,第二虚拟网桥根据第一消息获取第一容器的地址信息,第一虚拟网桥对应的 第一容器根据第二容器的地址信息与第二容器通信,第二虚拟网桥对应的第二容器根据第 一容器的地址信息与第一容器通信,由于第一虚拟网桥和第一容器位于第一Docker服务 器,第二虚拟网桥和第二容器位于第二Docker服务器,从而实现了分散在不同Docker服务 器上且属于同一用户的容器之间的正常通信,另外,容器间通信不需要通过广播方式广播 待发送的报文,提高了容器之间信息交互的保密性。
[0061] 在上述实施例的基础上,所述第一容器的地址信息包括所述第一容器的公网IP地 址和所述第一容器的端口号;所述第二容器的地址信息包括所述第二容器的公网IP地址和 所述第二容器的端口号。
[0062] 所述第一容器的地址信息还包括所述第一虚拟网桥分配给所述第一容器的第一 私网地址;所述第二容器的地址信息还包括所述第二虚拟网桥分配给所述第二容器的第二 私网地址。
[0063] 接收模块72还用于接收所述第一容器发送的第一报文,所述第一报文W所述第二 容器的公网IP地址为目的IP地址、所述第二容器的端口号为目的端口号、所述第一容器的 公网IP地址为源IP地址。
[0064] 接收模块72还用于接收所述第二容器发送的第二报文,所述第二报文W所述第一 容器的公网IP地址为目的IP地址、所述第一容器的端口号为目的端口号、所述第二容器的 公网IP地址为源IP地址。
[0065] 本发明实施例提供的容器间的通信装置可W具体用于执行上述图2所提供的方法 实施例,具体功能此处不再寶述。
[0066] 本发明实施例通过第一虚拟网桥向第二虚拟网桥发送第一消息,第二虚拟网桥向 第一虚拟网桥发送第二消息,第一消息包括有第一容器的地址信息和第一虚拟网桥的标识 信息,第二消息包括第二容器的地址信息和第二虚拟网桥的标识信息,标识信息相同的第 一虚拟网桥和第二虚拟网桥对应于同一个用户,第一虚拟网桥根据第二消息获取第二容器 的地址信息,第二虚拟网桥根据第一消息获取第一容器的地址信息,第一虚拟网桥对应的 第一容器根据第二容器的地址信息与第二容器通信,第二虚拟网桥对应的第二容器根据第 一容器的地址信息与第一容器通信,由于第一虚拟网桥和第一容器位于第一Docker服务 器,第二虚拟网桥和第二容器位于第二Docker服务器,从而实现了分散在不同Docker服务 器上且属于同一用户的容器之间的正常通信,另外,容器间通信不需要通过广播方式广播 待发送的报文,提高了容器之间信息交互的保密性。
[0067] 综上所述,本发明实施例通过第一虚拟网桥向第二虚拟网桥发送第一消息,第二 虚拟网桥向第一虚拟网桥发送第二消息,第一消息包括有第一容器的地址信息和第一虚拟 网桥的标识信息,第二消息包括第二容器的地址信息和第二虚拟网桥的标识信息,标识信 息相同的第一虚拟网桥和第二虚拟网桥对应于同一个用户,第一虚拟网桥根据第二消息获 取第二容器的地址信息,第二虚拟网桥根据第一消息获取第一容器的地址信息,第一虚拟 网桥对应的第一容器根据第二容器的地址信息与第二容器通信,第二虚拟网桥对应的第二 容器根据第一容器的地址信息与第一容器通信,由于第一虚拟网桥和第一容器位于第一 Docker服务器,第二虚拟网桥和第二容器位于第二Docker服务器,从而实现了分散在不同 Docker服务器上且属于同一用户的容器之间的正常通信,另外,容器间通信不需要通过广 播方式广播待发送的报文,提高了容器之间信息交互的保密性;各虚拟网桥可分配的私网 地址的范围互不重叠,虚拟网桥根据容器的私网地址确定该私网地址所属的网段,根据该 网段确定虚拟网桥,向该虚拟网桥直接发送包括容器地址信息的消息,避免了用广播的方 式发送包括容器地址信息的消息,避免了子网内的广播风暴。
[0068] 在本发明所提供的几个实施例中,应该理解到,所掲露的装置和方法,可W通过其 它的方式实现。例如,W上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅 仅为一种逻辑功能划分,实际实现时可W有另外的划分方式,例如多个单元或组件可W结 合或者可W集成到另一个系统,或一些特征可W忽略,或不执行。另一点,所显示或讨论的 相互之间的禪合或直接禪合或通信连接可W是通过一些接口,装置或单元的间接禪合或通 信连接,可W是电性,机械或其它的形式。
[0069] 所述作为分离部件说明的单元可W是或者也可W不是物理上分开的,作为单元显 示的部件可W是或者也可W不是物理单元,即可W位于一个地方,或者也可W分布到多个 网络单元上。可W根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目 的。
[0070] 另外,在本发明各个实施例中的各功能单元可W集成在一个处理单元中,也可W 是各个单元单独物理存在,也可W两个或两个W上单元集成在一个单元中。上述集成的单 元既可W采用硬件的形式实现,也可W采用硬件加软件功能单元的形式实现。
[0071] 上述W软件功能单元的形式实现的集成的单元,可W存储在一个计算机可读取存 储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用W使得一台计算机 设备(可W是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个 实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Readonly Memoir ,ROM)、随机存取存储器 (Random Access Memory ,RAM)、磁碟或者光盘等各种 可W存储程序代码的介质。
[0072] 本领域技术人员可W清楚地了解到,为描述的方便和简洁,仅W上述各功能模块 的划分进行举例说明,实际应用中,可W根据需要而将上述功能分配由不同的功能模块完 成,即将装置的内部结构划分成不同的功能模块,W完成W上描述的全部或者部分功能。上 述描述的装置的具体工作过程,可W参考前述方法实施例中的对应过程,在此不再寶述。
[0073] 最后应说明的是:W上各实施例仅用W说明本发明的技术方案,而非对其限制;尽 管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依 然可W对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进 行等同替换;而运些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术 方案的范围。
【主权项】
1. 一种容器间的通信方法,其特征在于,包括: 第一虚拟网桥向子网内除所述第一虚拟网桥外的第二虚拟网桥发送第一消息,所述第 一消息包括第一容器的地址信息和所述第一虚拟网桥的标识信息; 所述第一虚拟网桥接收所述第二虚拟网桥发送的第二消息,所述第二消息包括第二容 器的地址信息和所述第二虚拟网桥的标识信息; 若所述第一虚拟网桥的标识信息和所述第二虚拟网桥的标识信息相同,则所述第一虚 拟网桥将所述第二容器的地址信息发送给第一容器,以使所述第一容器依据所述第二容器 的地址信息与第二容器通信,具有相同的标识信息的虚拟网桥对应于同一用户; 其中,所述第一虚拟网桥和所述第一容器位于第一Docker服务器,所述第二虚拟网桥 和所述第二容器位于第二Docker服务器。2. 根据权利要求1所述的方法,其特征在于,所述第一容器的地址信息包括所述第一容 器的公网IP地址和所述第一容器的端口号; 所述第二容器的地址信息包括所述第二容器的公网IP地址和所述第二容器的端口号。3. 根据权利要求2所述的方法,其特征在于,所述第一容器的地址信息还包括所述第一 虚拟网桥分配给所述第一容器的第一私网地址; 所述第二容器的地址信息还包括所述第二虚拟网桥分配给所述第二容器的第二私网 地址。4. 根据权利要求3所述的方法,其特征在于,所述第一虚拟网桥将所述第二容器的地址 信息发送给第一容器之后,还包括: 所述第一虚拟网桥接收所述第一容器发送的第一报文,所述第一报文以所述第二容器 的公网IP地址为目的IP地址、所述第二容器的端口号为目的端口号、所述第一容器的公网 IP地址为源IP地址。5. 根据权利要求4所述的方法,其特征在于,还包括: 所述第一虚拟网桥接收所述第二容器发送的第二报文,所述第二报文以所述第一容器 的公网IP地址为目的IP地址、所述第一容器的端口号为目的端口号、所述第二容器的公网 IP地址为源IP地址。6. -种容器间的通信装置,其特征在于,包括: 发送模块,用于向子网内除所述第一虚拟网桥外的第二虚拟网桥发送第一消息,所述 第一消息包括第一容器的地址信息和所述第一虚拟网桥的标识信息; 接收模块,用于接收所述第二虚拟网桥发送的第二消息,所述第二消息包括第二容器 的地址信息和所述第二虚拟网桥的标识信息; 所述发送模块,还用于所述第一虚拟网桥的标识信息和所述第二虚拟网桥的标识信息 相同时,将所述第二容器的地址信息发送给第一容器,以使所述第一容器依据所述第二容 器的地址信息与第二容器通信,具有相同的标识信息的虚拟网桥对应于同一用户; 其中,所述第一虚拟网桥和所述第一容器位于第一Docker服务器,所述第二虚拟网桥 和所述第二容器位于第二Docker服务器。7. 根据权利要求6所述的容器间的通信装置,其特征在于,所述第一容器的地址信息包 括所述第一容器的公网IP地址和所述第一容器的端口号; 所述第二容器的地址信息包括所述第二容器的公网IP地址和所述第二容器的端口号。8. 根据权利要求7所述的容器间的通信装置,其特征在于,所述第一容器的地址信息还 包括所述第一虚拟网桥分配给所述第一容器的第一私网地址; 所述第二容器的地址信息还包括所述第二虚拟网桥分配给所述第二容器的第二私网 地址。9. 根据权利要求8所述的容器间的通信装置,其特征在于,所述接收模块还用于接收所 述第一容器发送的第一报文,所述第一报文以所述第二容器的公网IP地址为目的IP地址、 所述第二容器的端口号为目的端口号、所述第一容器的公网IP地址为源IP地址。10. 根据权利要求9所述的容器间的通信装置,其特征在于,所述接收模还用于接收所 述第二容器发送的第二报文,所述第二报文以所述第一容器的公网IP地址为目的IP地址、 所述第一容器的端口号为目的端口号、所述第二容器的公网IP地址为源IP地址。
【文档编号】H04L29/08GK105847108SQ201610350192
【公开日】2016年8月10日
【申请日】2016年5月24日
【发明人】田新雪, 马书惠
【申请人】中国联合网络通信集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1