CN105847108B - 容器间的通信方法及装置 - Google Patents
容器间的通信方法及装置 Download PDFInfo
- Publication number
- CN105847108B CN105847108B CN201610350192.8A CN201610350192A CN105847108B CN 105847108 B CN105847108 B CN 105847108B CN 201610350192 A CN201610350192 A CN 201610350192A CN 105847108 B CN105847108 B CN 105847108B
- Authority
- CN
- China
- Prior art keywords
- container
- virtual bridge
- address
- message
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004891 communication Methods 0.000 title claims abstract description 60
- 238000000034 method Methods 0.000 claims abstract description 20
- 230000005540 biological transmission Effects 0.000 claims 1
- 230000003993 interaction Effects 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 239000002775 capsule Substances 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L12/462—LAN interconnection over a bridge based backbone
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种容器间的通信方法及装置。该方法包括:第一虚拟网桥向子网内除第一虚拟网桥外的第二虚拟网桥发送第一消息,第一消息包括第一容器的地址信息和第一虚拟网桥的标识信息;第一虚拟网桥接收第二虚拟网桥发送的第二消息,第二消息包括第二容器的地址信息和第二虚拟网桥的标识信息;若第一虚拟网桥的标识信息和第二虚拟网桥的标识信息相同,则第一虚拟网桥将第二容器的地址信息发送给第一容器,以使第一容器依据第二容器的地址信息与第二容器通信。本发明实施例实现了分散在不同Docker服务器上且属于同一用户的容器之间的正常通信,另外,容器间通信不需要通过广播方式广播待发送的报文,提高了容器之间信息交互的保密性。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种容器间的通信方法及装置。
背景技术
Docker是一个开源的应用容器引擎,在物理主机上安装Docker后,可在Docker的基础上承载多个容器,多个容器之间相互隔离,多个容器共享物理主机的操作系统,各容器可放置并执行不同的应用程序。
现有技术中,除了广播通信方式,分散在不同Docker服务器上且属于同一用户的容器之间无法正常通信,而广播通信方式会降低容器之间信息交互的保密性。
发明内容
本发明实施例提供一种容器间的通信方法及装置,以实现分散在不同Docker服务器上且属于同一用户的容器之间的正常通信。
本发明实施例的一个方面是提供一种容器间的通信方法,包括:
第一虚拟网桥向子网内除所述第一虚拟网桥外的第二虚拟网桥发送第一消息,所述第一消息包括第一容器的地址信息和所述第一虚拟网桥的标识信息;
所述第一虚拟网桥接收所述第二虚拟网桥发送的第二消息,所述第二消息包括第二容器的地址信息和所述第二虚拟网桥的标识信息;
若所述第一虚拟网桥的标识信息和所述第二虚拟网桥的标识信息相同,则所述第一虚拟网桥将所述第二容器的地址信息发送给第一容器,以使所述第一容器依据所述第二容器的地址信息与第二容器通信,具有相同的标识信息的虚拟网桥对应于同一用户;
其中,所述第一虚拟网桥和所述第一容器位于第一Docker服务器,所述第二虚拟网桥和所述第二容器位于第二Docker服务器。
本发明实施例的另一个方面是提供一种容器间的通信装置,包括:
发送模块,用于向子网内除所述第一虚拟网桥外的第二虚拟网桥发送第一消息,所述第一消息包括第一容器的地址信息和所述第一虚拟网桥的标识信息;
接收模块,用于接收所述第二虚拟网桥发送的第二消息,所述第二消息包括第二容器的地址信息和所述第二虚拟网桥的标识信息;
所述发送模块,还用于所述第一虚拟网桥的标识信息和所述第二虚拟网桥的标识信息相同时,将所述第二容器的地址信息发送给第一容器,以使所述第一容器依据所述第二容器的地址信息与第二容器通信,具有相同的标识信息的虚拟网桥对应于同一用户;
其中,所述第一虚拟网桥和所述第一容器位于第一Docker服务器,所述第二虚拟网桥和所述第二容器位于第二Docker服务器。
本发明实施例提供的容器间的通信方法及装置,通过第一虚拟网桥向第二虚拟网桥发送第一消息,第二虚拟网桥向第一虚拟网桥发送第二消息,第一消息包括有第一容器的地址信息和第一虚拟网桥的标识信息,第二消息包括第二容器的地址信息和第二虚拟网桥的标识信息,标识信息相同的第一虚拟网桥和第二虚拟网桥对应于同一个用户,第一虚拟网桥根据第二消息获取第二容器的地址信息,第二虚拟网桥根据第一消息获取第一容器的地址信息,第一虚拟网桥对应的第一容器根据第二容器的地址信息与第二容器通信,第二虚拟网桥对应的第二容器根据第一容器的地址信息与第一容器通信,由于第一虚拟网桥和第一容器位于第一Docker服务器,第二虚拟网桥和第二容器位于第二Docker服务器,从而实现了分散在不同Docker服务器上且属于同一用户的容器之间的正常通信,另外,容器间通信不需要通过广播方式广播待发送的报文,提高了容器之间信息交互的保密性。
附图说明
图1为现有技术中Docker服务器与子网的连接示意图;
图2为现有技术中Docker服务器与子网的连接示意图;
图3为本发明实施例提供的容器间的通信方法流程图;
图4为本发明实施例提供的容器间的通信方法适用的网络架构图;
图5为本发明另一实施例提供的容器间的通信方法流程图;
图6为本发明另一实施例提供的容器间的通信方法适用的网络架构图;
图7为本发明实施例提供的容器间的通信装置的结构图。
具体实施方式
图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上该端口号对应的容器发送报文。
图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服务器上。
图3为本发明实施例提供的容器间的通信方法流程图;图4为本发明实施例提供的容器间的通信方法适用的网络架构图。本发明实施例针对现有技术中,除了广播通信方式,分散在不同Docker服务器上且属于同一用户的容器之间无法正常通信,而广播通信方式会降低容器之间信息交互的保密性,提供了容器间的通信方法,该方法具体步骤如下:
步骤S301、第一虚拟网桥向子网内除所述第一虚拟网桥外的第二虚拟网桥发送第一消息,所述第一消息包括第一容器的地址信息和所述第一虚拟网桥的标识信息;
本发明实施例提供了分散在不同的Docker服务器上的属于同一用户的容器之间的通信方法,即如图2所示的容器31和容器61之间、容器32和容器62之间的通信方法,本发明实施例以容器31和容器61之间的通信方法为例进行介绍。
如图4所示,容器31和容器61属于同一个用户即用户A,且分散在不同的Docker服务器即Docker服务器21和Docker服务器51,在Docker服务器21上创建第一虚拟网桥81,在Docker服务器51上创建第二虚拟网桥82,第一虚拟网桥81和第二虚拟网桥82属于用户A,创建虚拟网桥的方法可以是现有技术中的任何一种方法。第一虚拟网桥81为容器31分配一个私网IP地址,例如192.168.0.100;第二虚拟网桥82为容器61分配一个私网IP地址,例如192.168.0.200。
由于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的标识信息。
步骤S302、所述第一虚拟网桥接收所述第二虚拟网桥发送的第二消息,所述第二消息包括第二容器的地址信息和所述第二虚拟网桥的标识信息;
由于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的标识信息。
步骤S303、若所述第一虚拟网桥的标识信息和所述第二虚拟网桥的标识信息相同,则所述第一虚拟网桥将所述第二容器的地址信息发送给第一容器,以使所述第一容器依据所述第二容器的地址信息与第二容器通信,具有相同的标识信息的虚拟网桥对应于同一用户。
其中,所述第一虚拟网桥和所述第一容器位于第一Docker服务器,所述第二虚拟网桥和所述第二容器位于第二Docker服务器。
在本发明实施例中,第一虚拟网桥81接收第二虚拟网桥82广播的第二消息,第二虚拟网桥82接收第一虚拟网桥81广播的第一消息,由于第二消息中包括第二虚拟网桥82的标识信息,第一消息中包括第一虚拟网桥81的标识信息,由于第二虚拟网桥82和第一虚拟网桥81属于同一个用户,则第二虚拟网桥82和第一虚拟网桥81的标识信息相同,表明第二虚拟网桥82对应的容器61和第一虚拟网桥81对应的容器31属于同一个用户,第二虚拟网桥82记录第一消息中容器31的地址信息,第一虚拟网桥81记录第二消息中容器61的地址信息,以便后续容器31和容器61通信。具体地,第一虚拟网桥81将容器61的地址信息发送给容器31,第二虚拟网桥82将容器31的地址信息发送给容器61,容器31根据容器61的地址信息便可以向容器61发送信息,容器61根据容器31的地址信息便可以向容器31发送信息,实现了容器31和容器61之间的通信。
本发明实施例通过第一虚拟网桥向第二虚拟网桥发送第一消息,第二虚拟网桥向第一虚拟网桥发送第二消息,第一消息包括有第一容器的地址信息和第一虚拟网桥的标识信息,第二消息包括第二容器的地址信息和第二虚拟网桥的标识信息,标识信息相同的第一虚拟网桥和第二虚拟网桥对应于同一个用户,第一虚拟网桥根据第二消息获取第二容器的地址信息,第二虚拟网桥根据第一消息获取第一容器的地址信息,第一虚拟网桥对应的第一容器根据第二容器的地址信息与第二容器通信,第二虚拟网桥对应的第二容器根据第一容器的地址信息与第一容器通信,由于第一虚拟网桥和第一容器位于第一Docker服务器,第二虚拟网桥和第二容器位于第二Docker服务器,从而实现了分散在不同Docker服务器上且属于同一用户的容器之间的正常通信,另外,容器间通信不需要通过广播方式广播待发送的报文,提高了容器之间信息交互的保密性。
图5为本发明另一实施例提供的容器间的通信方法流程图。在图3对应的实施例的基础上,本发明实施例提供的容器间的通信方法具体步骤如下:
步骤S501、第一虚拟网桥向子网内除所述第一虚拟网桥外的第二虚拟网桥发送第一消息,所述第一消息包括第一容器的地址信息和所述第一虚拟网桥的标识信息;
步骤S502、所述第一虚拟网桥接收所述第二虚拟网桥发送的第二消息,所述第二消息包括第二容器的地址信息和所述第二虚拟网桥的标识信息;
步骤S503、若所述第一虚拟网桥的标识信息和所述第二虚拟网桥的标识信息相同,则所述第一虚拟网桥将所述第二容器的地址信息发送给第一容器,以使所述第一容器依据所述第二容器的地址信息与第二容器通信,具有相同的标识信息的虚拟网桥对应于同一用户;
步骤S501-步骤S503分别与步骤S301-步骤S303一致,具体方法此处不再赘述。
步骤S504、所述第一虚拟网桥接收所述第一容器发送的第一报文,所述第一报文以所述第二容器的公网IP地址为目的IP地址、所述第二容器的端口号为目的端口号、所述第一容器的公网IP地址为源IP地址;
在上述实施例的基础上,所述第一容器的地址信息还包括所述第一虚拟网桥分配给所述第一容器的第一私网地址;所述第二容器的地址信息还包括所述第二虚拟网桥分配给所述第二容器的第二私网地址。
在本发明实施例中,第一虚拟网桥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的标识信息。
第一虚拟网桥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。
容器31通过第一虚拟网桥81向容器61发送第一报文,第一报文的帧格式如表1所示:
表1
由表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。
步骤S505、所述第一虚拟网桥接收所述第二容器发送的第二报文,所述第二报文以所述第一容器的公网IP地址为目的IP地址、所述第一容器的端口号为目的端口号、所述第二容器的公网IP地址为源IP地址。
容器61通过第二虚拟网桥82向容器31发送第二报文,第二报文的帧格式如表2所示:
表2
由表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。
本发明实施例通过第一虚拟网桥向第二虚拟网桥发送第一消息,第二虚拟网桥向第一虚拟网桥发送第二消息,第一消息包括有第一容器的地址信息和第一虚拟网桥的标识信息,第二消息包括第二容器的地址信息和第二虚拟网桥的标识信息,标识信息相同的第一虚拟网桥和第二虚拟网桥对应于同一个用户,第一虚拟网桥根据第二消息获取第二容器的地址信息,第二虚拟网桥根据第一消息获取第一容器的地址信息,第一虚拟网桥对应的第一容器根据第二容器的地址信息与第二容器通信,第二虚拟网桥对应的第二容器根据第一容器的地址信息与第一容器通信,由于第一虚拟网桥和第一容器位于第一Docker服务器,第二虚拟网桥和第二容器位于第二Docker服务器,从而实现了分散在不同Docker服务器上且属于同一用户的容器之间的正常通信,另外,容器间通信不需要通过广播方式广播待发送的报文,提高了容器之间信息交互的保密性。
图6为本发明另一实施例提供的容器间的通信方法适用的网络架构图。如图6所示,在图4的基础上,子网20还连接有Docker服务器91,Docker服务器91上设置有容器101,容器31、容器61和容器101属于同一个用户即用户A,在Docker服务器91上创建第三虚拟网桥83,第三虚拟网桥83为容器101分配一个私网IP地址,例如192.168.0.240。在本发明实施例中,第一虚拟网桥81、第二虚拟网桥82和第三虚拟网桥83可分配的私网地址的范围互不重叠,例如,第一虚拟网桥81可分配192.168.0.100-199范围内的私网地址,第二虚拟网桥82可分配192.168.0.200-220范围内的私网地址,第三虚拟网桥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是第三虚拟网桥83可分配的网段,则第一虚拟网桥81直接向第三虚拟网桥83发送第一消息,第一消息包括容器31的地址信息和第一虚拟网桥81的标识信息,第三虚拟网桥83确定第一虚拟网桥81的标识信息和自身的标识信息相同后,将容器31的地址信息发送给容器101,容器101依据容器31的地址信息向容器31发送报文,容器31和容器101之间的通信交互过程以及相应的报文格式同理于容器31和容器61之间的通信交互过程以及相应的报文格式,此处不再赘述。
本发明实施例各虚拟网桥可分配的私网地址的范围互不重叠,虚拟网桥根据容器的私网地址确定该私网地址所属的网段,根据该网段确定虚拟网桥,向该虚拟网桥直接发送包括容器地址信息的消息,避免了用广播的方式发送包括容器地址信息的消息,避免了子网内的广播风暴。
图7为本发明实施例提供的容器间的通信装置的结构图。本发明实施例提供的容器间的通信装置可以执行容器间的通信方法实施例提供的处理流程,如图7所示,容器间的通信装置70包括发送模块71和接收模块72,其中,发送模块71用于向子网内除所述第一虚拟网桥外的第二虚拟网桥发送第一消息,所述第一消息包括第一容器的地址信息和所述第一虚拟网桥的标识信息;接收模块72用于接收所述第二虚拟网桥发送的第二消息,所述第二消息包括第二容器的地址信息和所述第二虚拟网桥的标识信息;所述发送模块71还用于所述第一虚拟网桥的标识信息和所述第二虚拟网桥的标识信息相同时,将所述第二容器的地址信息发送给第一容器,以使所述第一容器依据所述第二容器的地址信息与第二容器通信,具有相同的标识信息的虚拟网桥对应于同一用户;其中,所述第一虚拟网桥和所述第一容器位于第一Docker服务器,所述第二虚拟网桥和所述第二容器位于第二Docker服务器。
本发明实施例提供的容器间的通信装置可以具体用于执行上述图1所提供的方法实施例,具体功能此处不再赘述。
本发明实施例通过第一虚拟网桥向第二虚拟网桥发送第一消息,第二虚拟网桥向第一虚拟网桥发送第二消息,第一消息包括有第一容器的地址信息和第一虚拟网桥的标识信息,第二消息包括第二容器的地址信息和第二虚拟网桥的标识信息,标识信息相同的第一虚拟网桥和第二虚拟网桥对应于同一个用户,第一虚拟网桥根据第二消息获取第二容器的地址信息,第二虚拟网桥根据第一消息获取第一容器的地址信息,第一虚拟网桥对应的第一容器根据第二容器的地址信息与第二容器通信,第二虚拟网桥对应的第二容器根据第一容器的地址信息与第一容器通信,由于第一虚拟网桥和第一容器位于第一Docker服务器,第二虚拟网桥和第二容器位于第二Docker服务器,从而实现了分散在不同Docker服务器上且属于同一用户的容器之间的正常通信,另外,容器间通信不需要通过广播方式广播待发送的报文,提高了容器之间信息交互的保密性。
在上述实施例的基础上,所述第一容器的地址信息包括所述第一容器的公网IP地址和所述第一容器的端口号;所述第二容器的地址信息包括所述第二容器的公网IP地址和所述第二容器的端口号。
所述第一容器的地址信息还包括所述第一虚拟网桥分配给所述第一容器的第一私网地址;所述第二容器的地址信息还包括所述第二虚拟网桥分配给所述第二容器的第二私网地址。
接收模块72还用于接收所述第一容器发送的第一报文,所述第一报文以所述第二容器的公网IP地址为目的IP地址、所述第二容器的端口号为目的端口号、所述第一容器的公网IP地址为源IP地址。
接收模块72还用于接收所述第二容器发送的第二报文,所述第二报文以所述第一容器的公网IP地址为目的IP地址、所述第一容器的端口号为目的端口号、所述第二容器的公网IP地址为源IP地址。
本发明实施例提供的容器间的通信装置可以具体用于执行上述图2所提供的方法实施例,具体功能此处不再赘述。
本发明实施例通过第一虚拟网桥向第二虚拟网桥发送第一消息,第二虚拟网桥向第一虚拟网桥发送第二消息,第一消息包括有第一容器的地址信息和第一虚拟网桥的标识信息,第二消息包括第二容器的地址信息和第二虚拟网桥的标识信息,标识信息相同的第一虚拟网桥和第二虚拟网桥对应于同一个用户,第一虚拟网桥根据第二消息获取第二容器的地址信息,第二虚拟网桥根据第一消息获取第一容器的地址信息,第一虚拟网桥对应的第一容器根据第二容器的地址信息与第二容器通信,第二虚拟网桥对应的第二容器根据第一容器的地址信息与第一容器通信,由于第一虚拟网桥和第一容器位于第一Docker服务器,第二虚拟网桥和第二容器位于第二Docker服务器,从而实现了分散在不同Docker服务器上且属于同一用户的容器之间的正常通信,另外,容器间通信不需要通过广播方式广播待发送的报文,提高了容器之间信息交互的保密性。
综上所述,本发明实施例通过第一虚拟网桥向第二虚拟网桥发送第一消息,第二虚拟网桥向第一虚拟网桥发送第二消息,第一消息包括有第一容器的地址信息和第一虚拟网桥的标识信息,第二消息包括第二容器的地址信息和第二虚拟网桥的标识信息,标识信息相同的第一虚拟网桥和第二虚拟网桥对应于同一个用户,第一虚拟网桥根据第二消息获取第二容器的地址信息,第二虚拟网桥根据第一消息获取第一容器的地址信息,第一虚拟网桥对应的第一容器根据第二容器的地址信息与第二容器通信,第二虚拟网桥对应的第二容器根据第一容器的地址信息与第一容器通信,由于第一虚拟网桥和第一容器位于第一Docker服务器,第二虚拟网桥和第二容器位于第二Docker服务器,从而实现了分散在不同Docker服务器上且属于同一用户的容器之间的正常通信,另外,容器间通信不需要通过广播方式广播待发送的报文,提高了容器之间信息交互的保密性;各虚拟网桥可分配的私网地址的范围互不重叠,虚拟网桥根据容器的私网地址确定该私网地址所属的网段,根据该网段确定虚拟网桥,向该虚拟网桥直接发送包括容器地址信息的消息,避免了用广播的方式发送包括容器地址信息的消息,避免了子网内的广播风暴。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
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地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610350192.8A CN105847108B (zh) | 2016-05-24 | 2016-05-24 | 容器间的通信方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610350192.8A CN105847108B (zh) | 2016-05-24 | 2016-05-24 | 容器间的通信方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105847108A CN105847108A (zh) | 2016-08-10 |
CN105847108B true CN105847108B (zh) | 2019-01-15 |
Family
ID=56594262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610350192.8A Active CN105847108B (zh) | 2016-05-24 | 2016-05-24 | 容器间的通信方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105847108B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789526B (zh) * | 2016-11-29 | 2019-12-13 | 北京元心科技有限公司 | 多系统网络连接的方法及装置 |
CN107181701B (zh) * | 2017-05-18 | 2018-07-20 | 腾讯科技(深圳)有限公司 | 公共网关接口数据的收集方法及装置 |
CN107395781A (zh) * | 2017-06-29 | 2017-11-24 | 北京小度信息科技有限公司 | 网络通信方法及装置 |
CN107579898B (zh) * | 2017-09-14 | 2020-08-14 | 快云信息科技有限公司 | 一种多种容器间互联通信的方法及其装置 |
CN110769075B (zh) * | 2018-07-25 | 2022-07-05 | 中国电信股份有限公司 | 容器的通信方法、系统、控制器和计算机可读存储介质 |
CN112532675B (zh) * | 2019-09-19 | 2023-04-18 | 贵州白山云科技股份有限公司 | 一种网络边缘计算系统的创建方法、装置及介质 |
CN110995561B (zh) * | 2019-12-06 | 2021-05-07 | 中国科学院信息工程研究所 | 基于容器技术的虚拟网络数据通信交互方法与系统 |
CN111711612B (zh) * | 2020-05-25 | 2022-07-12 | 数篷科技(深圳)有限公司 | 通信控制方法、对通信请求进行处理的方法及其装置 |
CN114510152B (zh) * | 2022-04-18 | 2022-07-26 | 梯度云科技(北京)有限公司 | 基于容器构建元宇宙系统的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070100831A1 (en) * | 2005-07-26 | 2007-05-03 | Microsoft Corporation | Managing rich presence collections |
CN105099706A (zh) * | 2015-08-25 | 2015-11-25 | 华为技术有限公司 | 一种数据通信方法、用户设备和服务器 |
CN105407140A (zh) * | 2015-10-23 | 2016-03-16 | 上海比林电子科技有限公司 | 一种网络化测试系统的计算资源虚拟化系统及方法 |
CN105430110A (zh) * | 2015-10-30 | 2016-03-23 | 浪潮(北京)电子信息产业有限公司 | 一种虚拟网络系统的容器配置方法及网络传输装置 |
WO2016041421A1 (zh) * | 2014-09-19 | 2016-03-24 | 北京奇虎科技有限公司 | 网络通信方法及客户端 |
-
2016
- 2016-05-24 CN CN201610350192.8A patent/CN105847108B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070100831A1 (en) * | 2005-07-26 | 2007-05-03 | Microsoft Corporation | Managing rich presence collections |
WO2016041421A1 (zh) * | 2014-09-19 | 2016-03-24 | 北京奇虎科技有限公司 | 网络通信方法及客户端 |
CN105099706A (zh) * | 2015-08-25 | 2015-11-25 | 华为技术有限公司 | 一种数据通信方法、用户设备和服务器 |
CN105407140A (zh) * | 2015-10-23 | 2016-03-16 | 上海比林电子科技有限公司 | 一种网络化测试系统的计算资源虚拟化系统及方法 |
CN105430110A (zh) * | 2015-10-30 | 2016-03-23 | 浪潮(北京)电子信息产业有限公司 | 一种虚拟网络系统的容器配置方法及网络传输装置 |
Non-Patent Citations (1)
Title |
---|
云计算中使用容器技术的信息安全风险与对策;张楠;《信息网络安全》;20150930;全文 |
Also Published As
Publication number | Publication date |
---|---|
CN105847108A (zh) | 2016-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105847108B (zh) | 容器间的通信方法及装置 | |
CN106067858B (zh) | 容器间的通信方法、装置及系统 | |
CN101207604B (zh) | 一种虚拟机系统及其通信处理方法 | |
CN102571749B (zh) | 使用中继服务器的数据传输系统和方法 | |
KR101437364B1 (ko) | 송신장치 및 수신장치와 그 장치의 동작 방법 | |
CN106130990B (zh) | 容器访问的控制方法及装置 | |
EP4236207A1 (en) | Data transmission method, apparatus and device in service integration, and storage medium and computer program product | |
JP2013511207A5 (zh) | ||
US7751401B2 (en) | Method and apparatus to provide virtual toe interface with fail-over | |
CN106101171B (zh) | 服务器连接方法及装置 | |
CN107547665B (zh) | 一种dhcp地址分配的方法、设备及系统 | |
EP3367612A1 (en) | Dial testing method, dial testing system, and compute node | |
CN104539902B (zh) | 一种ipc的远程访问方法和系统 | |
WO2013178099A1 (zh) | 一种实现远程桌面的系统、方法、客户端和服务中心 | |
CN109818917A (zh) | 一种通信方法及其装置 | |
KR101455229B1 (ko) | 중계 서버 및 중계 통신 시스템 | |
CN105939267A (zh) | 带外管理方法及装置 | |
CN106101297B (zh) | 一种报文应答方法及装置 | |
CN108173928A (zh) | Udp数据传输的方法、装置、存储介质及终端设备 | |
CN107659930A (zh) | 一种ap接入控制方法和装置 | |
CN103823721B (zh) | 一种进程间通信的方法及设备 | |
CN105827496B (zh) | 管理pe设备的方法及装置 | |
CN102594886A (zh) | 浏览器与浏览器直通的方法、装置和通信系统 | |
CN104539752B (zh) | 多级域平台间的访问方法及系统 | |
CN106210162B (zh) | 通信控制方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |