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

文档序号:9787704阅读:186来源:国知局
容器间通信的方法与装置的制造方法
【技术领域】
[0001]本发明涉及通信领域,并且更具体地,涉及容器间通信的方法与装置。
【背景技术】
[0002]容器是操作系统级别的轻量级虚拟化技术,而且它底层依赖的技术Linux命名空间(Namespace)、Linux控制组(Control Group,C Group)完全是内核特性,没有任何中间层开销,对于资源的利用率极高,性能接近物理机。
[0003]Linux Namespace是操作系统级别的虚拟机技术,提供了一种资源隔离方案。Unix分时操作系统(Unix Timesharing Sy s t em,UTS ),进程间通信(In t er-Pro ce s sCommunicat1n, IPC),文件系统(MOUNT),进程控制符(Process IDentif ier,PID)等系统资源不再是全局性的,而是属于特定的name space,每个name space里面的资源对其他namespace都是透明的。
[0004]容器类似于虚拟机,是一种软件沙箱,一种安全机制,主要为运行中的程序提供的隔离环境,严格控制容器中的程序所能访问的资源。Linux Namespaces机制为实现基于容器的虚拟化技术提供了很好的基础,容器就是利用这一特性实现了资源的隔离,不同容器内的进程属于不同的Namespace,彼此透明,互不干扰。

【发明内容】

[0005]本发明实施例提供了一种容器间通信的方法与装置,能够使两个相互隔离的容器之间进行通信。
[0006]第一方面,提供了一种容器间通信的方法,该方法包括:接收第一容器发送的用于请求与第二容器进行通信的鉴权请求,其中,该第一容器与该第二容器位于同一个主机上,并且该第一容器与该第二容器均挂载了该主机的共享目录;根据该鉴权请求,在该主机的共享目录下生成通信文件,该通信文件包括该第一容器与该第二容器进行通信的通信资源;向该第一容器与该第二容器发送该通信文件的文件信息,以便于该第一容器与该第二容器根据该通信文件的文件信息,在该主机的共享目录下确定该通信文件,并根据该通信文件进行通信。
[0007]本发明实施例的容器间通信的方法,通过鉴权模块接收第一容器发送的用于请求第二容器通信的鉴权请求,该第一容器与该第二容器位于同一个主机中,并且该第一容器与该第二容器均挂载了该主机的共享目录,根据该鉴权请求生成包括该第一容器与该第二容器通信资源的通信文件,并向该第一容器与该第二容器发送该通信文件的文件信息,能够使相互隔离的两个容器之间进行通信。
[0008]结合第一方面,在第一方面的第一种可能的实现方式中,在根据该鉴权请求,在该主机的共享目录下生成通信文件之前,该方法还包括:根据该鉴权请求,判断该第一容器与该第二容器是否在预设的可信容器名单中,其中,该鉴权请求携带该第一容器的标识与该第二容器的标识;若该第一容器与该第二容器均在该预设的可信容器名单中,则确定该第一容器与该第二容器具有通信的权限。
[0009]结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,根据该鉴权请求,在该主机的共享目录下生成通信文件,包括:根据该鉴权请求,确定该第一容器与该第二容器的通信方式;根据该通信方式,生成该通信文件。
[0010]可选地,该鉴权请求可以包括该第一容器的标识和该第二容器的标识,还可以包括该第一容器与该第二容器使用的通信方式。
[0011]结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,根据该通信方式,生成该通信文件,包括:若确定该第一容器与该第二容器采用Unix域套接字的通信方式,则生成套接口文件,该套接口文件用于描述该第一容器与该第二容器进行通信提供套接口;和/或若确定该第一容器与该第二容器采用共享内存的通信方式,则生成共享内存文件,该共享内存文件用于在该主机的内存中为该第一容器与该第二容器进行通信提供共享内存。
[0012]本发明实施例的容器间通信的方法,该第一容器与该第二容器采用Unix域套接字方式进行通信,通信的速度快,安全性好;该第一容器与该第二容器采用共享内存方式进行通信,通信的性能好,质量高。
[0013]第二方面,提供了另一种容器间通信的方法,包括:接收主机的鉴权模块发送的通信文件的文件信息,该通信文件包括第一容器与第二容器进行通信的通信资源,该第一容器与该第二容器均挂载了该主机的共享目录,并且该通信文件位于该主机的共享目录下;该第一容器根据该通信文件的文件信息,在该主机的共享目录下确定该通信文件;该第一容器根据该通信文件,与该第二容器进行通信。
[0014]结合第二方面,在第二方面的第一种可能的实现方式中,在接收主机的鉴权模块发送的通信文件的文件信息之前,该方法还包括:该第一容器向该鉴权模块发送鉴权请求,该鉴权请求用于请求与该第二容器进行通信,该第一容器与该第二容器均位于该主机中。
[0015]结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,该鉴权请求携带该第一容器与该第二容器的通信方式。
[0016]可选地,该第一容器与该第二容器之间的通信方式可以为用户提前设定的。
[0017]结合第二方面、第二方面的第一种或第二种可能的实现方式,在第二方面的第三种可能的实现方式中,该通信文件包括:套接口文件和/或共享内存文件,该套接口文件用于描述该第一容器与该第二容器进行通信提供套接口,该共享内存文件用于在该主机的内存中为该第一容器与该第二容器进行通信提供共享内存。
[0018]第三方面,提供了一种容器间通信的装置,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的单元。
[0019]第四方面,提供了一种容器间通信的装置,用于执行上述第二方面或第二方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第二方面或第二方面的任意可能的实现方式中的方法的单元。
[0020]第五方面,提供了一种容器间通信的装置,该装置包括:接收器、发送器、存储器、处理器和总线系统。其中,该接收器、该发送器、该存储器和该处理器通过该总线系统相连,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制接收器接收信号,并控制发送器发送信号,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
[0021]第六方面,提供了一种容器间通信的装置,该装置包括:接收器、发送器、存储器、处理器和总线系统。其中,该接收器、该发送器、该存储器和该处理器通过该总线系统相连,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制接收器接收信号,并控制发送器发送信号,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行第二方面或第二方面的任意可能的实现方式中的方法。
[0022]第七方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
[0023]第八方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第二方面或第二方面的任意可能的实现方式中的方法的指令。
【附图说明】
[0024]为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0025]图1是本发明实施例应用的Linux系统的示意图。
[0026]图2是本发明实施例提供的容器间通信的方法的示意性流程图。
[0027]图3是本发明实施例提供的另一容器间通信的方法的示意性流程图。
[0028]图4是本发明实施例提供的另一容器间通信的方法的示意性流程图。
[0029]图5是本发明实施例提供的容器间通信的装置的示意性框图。
[0030]图6是本发明实施例提供的另一容器间通信的装置的示意性框图。
[0031]图7是本发明实施例提供的另一容器间通信的装置的示意性框图。
[0032]图8是本发明实施例提供的另一容器间通信的装置的示意性框图。
【具体实施方式】
[0033]下面结合附图,对本发明的实施例进行描述。
[0034]图1示出了本发明实施例应用的Linux系统100的示意图。该Linux系统可以包括鉴权模块和多个容器。可选地,由于Linux操作系统的Namespace隔离机制,该Linux系统中的所有容器共享同一个内核,并且Linux系统的主机为每个容器提供了一个拥有自己进程和网络空间的虚拟环境,该Linux系统中的多个容器各自内部的应用程序相互隔离,互不干扰。
[0035]图1示例性地示出了鉴权模块丨10、容器121和容器122,可选地,该Linux系统可以包括主机中其他的容器,本发明实施例对此不作限定。
[0036]该鉴权模块110用于通过鉴权通道接收容器121的鉴权请求,该鉴权请求用于请求与容器122通信;根据该鉴权请求,判断容器121与容器122通信的权限,即判断容器121与容器122是否为可信任容器;若容器121与容器122均为可信任容器,则生成上述两个容器进行通信的通信文件,该通信文件包括上述两个容器进行通信的通信资源,并将该通信文件的文件信息分别通过鉴权通道发送给容器121与容器122,以便于这两个容器根据通信文件的文件信息,主机的共享目录中找到该通信文件,并通过该通信文件进行容器间通信。
[0037]该容器121与该容器122用于接收该鉴权模块110发送的通信文件的文件信息,在各自挂载的主机共享目录中确定该通信文件,并根据该通信文件进行通信。
[0038]可选地,该容器121可
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1