CN110392053A - 容器访问控制方法、装置、客户端及服务器 - Google Patents
容器访问控制方法、装置、客户端及服务器 Download PDFInfo
- Publication number
- CN110392053A CN110392053A CN201910661858.5A CN201910661858A CN110392053A CN 110392053 A CN110392053 A CN 110392053A CN 201910661858 A CN201910661858 A CN 201910661858A CN 110392053 A CN110392053 A CN 110392053A
- Authority
- CN
- China
- Prior art keywords
- container
- client
- server
- agent apparatus
- multiple containers
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/14—Two-way operation using the same type of signal, i.e. duplex
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- 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/14—Session management
- H04L67/141—Setup of application sessions
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供的一种容器访问控制方法、装置、客户端及服务器,通过设置容器代理装置,即在容器之外设置容器代理,容器代理装置与容器是一对多的关系,进而不需要在每个容器内部设置代理,从而当需要访问多个容器时,不需要基于容器内多进程方式实现,不会额外增加一个通信进程,解决了目前多容器访问时增加资源消耗,且配置管理不方便的问题。
Description
技术领域
本发明涉及信息系统远程访问技术领域,更具体的,涉及一种容器访问控制方法、装置、客户端及服务器。
背景技术
以DOCKER为代表的容器技术极大的提高了应用的运行效率,让应用的部署、测试和分发都变的高效和轻松,已经成为很多公司的标配。容器通过操作系统层虚拟化实现隔离,本质上是操作系统中的一个进程,要进入容器内部,通常在宿主机上使用命令行方式实现,容器数量多了之后,面临着便捷性差,操作繁琐的问题。业内有提出远程访问容器的方法,但多是基于容器内多进程方式实现,但多进程的方式需要容器内额外增加一个通信进程,增加资源消耗,且配置管理不方便。
发明内容
为了解决上述问题的至少一个,本申请提供一种容器访问控制方法、装置、客户端及服务器。
本申请一个方面实施例提供一种容器访问控制方法,包括:
客户端向与该客户端建立双工连接的服务器发送多个容器的容器信息,以使所述服务器根据所述容器信息向容器代理装置发送连接请求,从而使所述容器代理装置与所述服务器建立全双工连接,并使所述容器代理装置基于所述连接请求与多个所述容器建立全双工连接,进而所述客户端与所述容器均处于全双工通信链路中;
其中,所述客户端可通过所述全双工通信链路访问多个所述容器。
在某些实施例中,还包括:
所述客户端将所述服务器返回的访问的容器中的数据转换为终端样式。
在某些实施例中,所述客户端使用websocket协议与所述服务器进行通信。
本申请另一个方面实施例提供一种容器访问控制方法,包括:
服务器根据与该服务器建立双工连接的客户端发出的多个容器的容器信息,生成连接请求;
服务器将所述连接请求发送至容器代理装置,从而使所述容器代理装置与所述服务器建立全双工连接,并使所述容器代理装置基于所述连接请求与多个所述容器建立全双工连接,进而所述客户端与所述容器均处于全双工通信链路中;
其中,所述客户端可通过所述全双工通信链路访问多个所述容器。
在某些实施例中,还包括:
所述服务器转发访问数据至所述客户端,其中所述访问数据是由所述容器发出并经所述容器代理装置转发的数据。
在某些实施例中,还包括:
审核所述客户端发送的访问命令,若审核通过,则将所述访问命令转发至所述容器代理装置。
本申请又一方面实施例提供一种容器访问控制方法,包括:
容器代理装置根据服务器发送的连接请求与多个容器建立全双工连接;
容器代理装置进一步与所述服务器建立全双工连接;其中所述服务器与一客户端建立全双工连接,进而使得所述客户端与多个所述容器均处于全双工通信链路中,所述客户端可通过所述全双工通信链路访问多个所述容器,所述连接请求是所述服务器根据所述客户端发送多个容器的容器信息生成。
在某些实施例中,所述容器代理装置根据服务器发送的连接请求与多个容器建立全双工连接,包括:
所述容器代理装置根据每个容器的接口,确定容器信息中对应指定的多个容器;
所述容器代理装置根据多个容器的数量,对应创建相同数量的bash进程;
所述容器代理装置将创建的bash进程加入至对应容器的命名空间中;
所述容器代理装置将bash进程的stdin与所述容器的输入接口绑定,将bash进程的stdout和stderr与所述容器的输出接口绑定,进而与每个所述容器建立了全双工连接。
本申请又一方面实施例提供一种客户端,包括:
容器信息发送模块,与该客户端建立双工连接的服务器发送多个容器的容器信息,以使所述服务器根据所述容器信息向容器代理装置发送连接请求,从而使所述容器代理装置与所述服务器建立全双工连接,并使所述容器代理装置基于所述连接请求与多个所述容器建立全双工连接,进而所述客户端与所述容器均处于全双工通信链路中;
其中,所述客户端可通过所述全双工通信链路访问多个所述容器。
在某些实施例中,还包括:
终端样式转换模块,将所述服务器返回的访问的容器中的数据转换为终端样式。
在某些实施例中,所述客户端使用websocket协议与所述服务器进行通信。
本申请又一方面实施例提供一种服务器,包括:
前端通信模块,根据与该服务器建立双工连接的客户端发出的多个容器的容器信息,生成连接请求;
后端通信模块,将所述连接请求发送至容器代理装置,从而使所述容器代理装置与所述服务器建立全双工连接,并使所述容器代理装置基于所述连接请求与多个所述容器建立全双工连接,进而所述客户端与所述容器均处于全双工通信链路中;其中,所述客户端可通过所述全双工通信链路访问多个所述容器。
在某些实施例中,还包括:
访问数据转发模块,转发访问数据至所述客户端,其中所述访问数据是由所述容器发出并经所述容器代理装置转发的数据。
在某些实施例中,还包括:
审核模块,审核所述客户端发送的访问命令,若审核通过,则将所述访问命令转发至所述容器代理装置。
本申请又一方面实施例提供一种容器代理装置,包括:
容器连接模块,根据服务器发送的连接请求与多个容器建立全双工连接;
通信模块,进一步与所述服务器建立全双工连接;其中所述服务器与一客户端建立全双工连接,进而使得所述客户端与多个所述容器均处于全双工通信链路中,所述客户端可通过所述全双工通信链路访问多个所述容器,所述连接请求是所述服务器根据所述客户端发送多个容器的容器信息生成。
在某些实施例中,所述容器连接模块,包括:
指定容器确定单元,根据每个容器的接口,确定容器信息中对应指定的多个容器;
bash进程创建单元,根据多个容器的数量,对应创建相同数量的bash进程;
进程加入单元,将创建的bash进程加入至对应容器的命名空间中;
绑定单元,将bash进程的stdin与所述容器的输入接口绑定,将bash进程的stdout和stderr与所述容器的输出接口绑定,进而与每个所述容器建立了全双工连接。
本申请又一方面实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。
本申请又一方面实施例一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本发明具有如下有益效果:
本申请提供的一种容器访问控制方法、装置、客户端及服务器,通过设置容器代理装置,即在容器之外设置容器代理,容器代理装置与容器是一对多的关系,进而不需要在每个容器内部设置代理,从而当需要访问多个容器时,不需要基于容器内多进程方式实现,不会额外增加一个通信进程,解决了目前多容器访问时增加资源消耗,且配置管理不方便的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本申请容器访问控制系统的结构示意图。
图2示出本申请一个方面实施例中容器访问控制方法中各装置之间的交互步骤图。
图3示出本申请服务器的具体模块示意图。
图4示出本申请容器代理装置的具体模块示意图。
图5示出适于实现本申请的电子设备。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
容器通过操作系统层虚拟化实现隔离,本质上是操作系统中的一个进程,要进入容器内部,通常在宿主机上使用命令行方式实现,容器数量多了之后,面临着便捷性差,操作繁琐的问题。业内有提出远程访问容器的方法,但多是基于容器内多进程方式实现,但多进程的方式需要容器内额外增加一个通信进程,增加资源消耗,且配置管理不方便。
图1示出了本申请一个方面实施例中的容器访问控制系统,其包括客户端1、服务器2、容器代理装置3以及多个容器4。
图2示出了本申请一个方面实施例中容器访问控制方法中各装置之间的交互步骤图。
如图2所示,本申请中的容器访问控制方法具体包括:
S1:客户端向与该客户端建立双工连接的服务器发送多个容器的容器信息;
S2:服务器根据与该服务器建立双工连接的客户端发出的多个容器的容器信息,生成连接请求;
S3:服务器将所述连接请求发送至容器代理装置;
S4:容器代理装置根据服务器发送的连接请求与多个容器建立全双工连接;
S5:容器代理装置进一步与所述服务器建立全双工连接。
通过上述容器访问控制方法后,所述客户端与所述容器均处于全双工通信链路中;因此所述客户端可通过所述全双工通信链路访问多个所述容器。
本申请提供的一种容器访问控制方法,通过设置容器代理装置,即在容器之外设置容器代理,容器代理装置与容器是一对多的关系,进而不需要在每个容器内部设置代理,从而当需要访问多个容器时,不需要基于容器内多进程方式实现,不会额外增加一个通信进程,解决了目前多容器访问时增加资源消耗,且配置管理不方便的问题。
在一些实施例中,所述客户端将所述服务器返回的访问的容器中的数据转换为终端样式。
在一些实施例中,所述客户端使用websocket协议与所述服务器进行通信。
在一些实施例中,所述服务器转发访问数据至所述客户端,其中所述访问数据是由所述容器发出并经所述容器代理装置转发的数据。
在一些实施例中,审核所述客户端发送的访问命令,若审核通过,则将所述访问命令转发至所述容器代理装置。
在一些实施例中,步骤S4包括:
S41:所述容器代理装置根据每个容器的接口,确定容器信息中对应指定的多个容器;
S42:所述容器代理装置根据多个容器的数量,对应创建相同数量的bash进程;
S43:所述容器代理装置将创建的bash进程加入至对应容器的命名空间中;
S44:所述容器代理装置将bash进程的stdin与所述容器的输入接口绑定,将bash进程的stdout和stderr与所述容器的输出接口绑定,进而与每个所述容器建立了全双工连接。
在一实施例中,客户端可以基于浏览器实现,在浏览器上模拟终端界面,接受用户输入,并将服务器返回的数据转换为终端样式,在浏览器中展示。
在一实施例中,客户端可以基于命令行工具实现。
下面结合具体实例对本发明进行详细说明。
该实施例基于开源的终端模拟器xtem.js,在浏览器页面模拟终端界面,浏览器页面使用websocket协议与服务器通信,服务器与运行容器的服务器上的docker daemon建立长连接,通过docker daemon访问容器。
客户端接受输入容器信息,包括但不限于容器所在服务器IP和容器编号,向服务器发送建立websocket连接请求,请求中包括容器信息。建立连接后,在浏览器模拟终端页面。本实施例中,利用开源框架xtem.js模拟终端页面。用户在模拟终端输入命令,接受模拟终端传递的命令发往服务器,并接受服务器返回的结果,经渲染后以终端样式在浏览器端展示。
如图3所示,服务器2包括前端通信端口21与后端通信端口22。前端通信端口21接受通信端口12的请求,传递容器信息给后端通信端口22。后端通信端口22根据容器信息,与容器代理装置3建立双向长连接。连接建立后,后端通信端口22将输出流与前端通信端口21输入流绑定,将输出流与前端通信端口21输入流绑定。客户端的输入通过前端通信端口21输入到后端通信端口22,后端通信端口22输出到容器代理装置3;容器代理装置3将返回信息输入后端通信端口22,后端通信端口22输出到前端通信端口21。
如图4所示,容器代理装置3包括通信端口31与容器连接模块32组成。通信端口31与后端通信端口22建立双向长连接。在本实施例中,通信端口31利用docker daemon API实现。接受通信端口31传递的容器信息,容器连接模块32创建一个bash进程;根据传入的容器信息,容器连接模块32通过容器运行时接口,找到容器信息中指定的容器,容器运行在操作系统namespace中;容器连接模32块利用操作系统提供的系统api将创建的bash进程加入到指定容器的namesapce中;并将bash进程的stdin与通信端口的输入流绑定,将bash进程的stdout,stderr与通信端口的输出流绑定,实现对容器的访问。
可以理解,本申请实施例通过容器远程访问方案,充分利用容器自身特性,有效提高了容器运维的便利性,效率,与安全性。
1.提高了容器运维的便利性,对于使用者来说,最直接可以在浏览器上访问容器,通过命令行进行常规运维操作;
2.提高了容器运维的效率,事先开通服务端到各容器代理装置的火墙,节省开通每个用户到容器的火墙的步骤与时间,运维更快速;
3.提高了容器运维的安全性,常用访问容器方法,需要先登录服务器,本方法可跳过该步骤,提高了服务器安全性。
基于上述实施例的详细描述,可以理解本申请一个方面实施例提供一种容器访问控制方法,包括:
客户端向与该客户端建立双工连接的服务器发送多个容器的容器信息,以使所述服务器根据所述容器信息向容器代理装置发送连接请求,从而使所述容器代理装置与所述服务器建立全双工连接,并使所述容器代理装置基于所述连接请求与多个所述容器建立全双工连接,进而所述客户端与所述容器均处于全双工通信链路中;
其中,所述客户端可通过所述全双工通信链路访问多个所述容器。
在某些实施例中,还包括:
所述客户端将所述服务器返回的访问的容器中的数据转换为终端样式。
在某些实施例中,所述客户端使用websocket协议与所述服务器进行通信。
基于相同的发明构思,可以理解,本申请另一个方面实施例提供一种容器访问控制方法,包括:
服务器根据与该服务器建立双工连接的客户端发出的多个容器的容器信息,生成连接请求;
服务器将所述连接请求发送至容器代理装置,从而使所述容器代理装置与所述服务器建立全双工连接,并使所述容器代理装置基于所述连接请求与多个所述容器建立全双工连接,进而所述客户端与所述容器均处于全双工通信链路中;
其中,所述客户端可通过所述全双工通信链路访问多个所述容器。
在某些实施例中,还包括:
所述服务器转发访问数据至所述客户端,其中所述访问数据是由所述容器发出并经所述容器代理装置转发的数据。
在某些实施例中,还包括:
审核所述客户端发送的访问命令,若审核通过,则将所述访问命令转发至所述容器代理装置。
基于相同的发明构思,可以理解,本申请又一方面实施例提供一种容器访问控制方法,包括:
容器代理装置根据服务器发送的连接请求与多个容器建立全双工连接;
容器代理装置进一步与所述服务器建立全双工连接;其中所述服务器与一客户端建立全双工连接,进而使得所述客户端与多个所述容器均处于全双工通信链路中,所述客户端可通过所述全双工通信链路访问多个所述容器,所述连接请求是所述服务器根据所述客户端发送多个容器的容器信息生成。
在某些实施例中,所述容器代理装置根据服务器发送的连接请求与多个容器建立全双工连接,包括:
所述容器代理装置根据每个容器的接口,确定容器信息中对应指定的多个容器;
所述容器代理装置根据多个容器的数量,对应创建相同数量的bash进程;
所述容器代理装置将创建的bash进程加入至对应容器的命名空间中;
所述容器代理装置将bash进程的stdin与所述容器的输入接口绑定,将bash进程的stdout和stderr与所述容器的输出接口绑定,进而与每个所述容器建立了全双工连接。
基于相同的发明构思,可以理解,本申请又一方面实施例提供一种客户端,包括:
容器信息发送模块,与该客户端建立双工连接的服务器发送多个容器的容器信息,以使所述服务器根据所述容器信息向容器代理装置发送连接请求,从而使所述容器代理装置与所述服务器建立全双工连接,并使所述容器代理装置基于所述连接请求与多个所述容器建立全双工连接,进而所述客户端与所述容器均处于全双工通信链路中;
其中,所述客户端可通过所述全双工通信链路访问多个所述容器。
在某些实施例中,还包括:
终端样式转换模块,将所述服务器返回的访问的容器中的数据转换为终端样式。
在某些实施例中,所述客户端使用websocket协议与所述服务器进行通信。
基于相同的发明构思,可以理解,本申请又一方面实施例提供一种服务器,包括:
前端通信模块,根据与该服务器建立双工连接的客户端发出的多个容器的容器信息,生成连接请求;
后端通信模块,将所述连接请求发送至容器代理装置,从而使所述容器代理装置与所述服务器建立全双工连接,并使所述容器代理装置基于所述连接请求与多个所述容器建立全双工连接,进而所述客户端与所述容器均处于全双工通信链路中;其中,所述客户端可通过所述全双工通信链路访问多个所述容器。
在某些实施例中,还包括:
访问数据转发模块,转发访问数据至所述客户端,其中所述访问数据是由所述容器发出并经所述容器代理装置转发的数据。
在某些实施例中,还包括:
审核模块,审核所述客户端发送的访问命令,若审核通过,则将所述访问命令转发至所述容器代理装置。
基于相同的发明构思,可以理解,本申请又一方面实施例提供一种容器代理装置,包括:
容器连接模块,根据服务器发送的连接请求与多个容器建立全双工连接;
通信模块,进一步与所述服务器建立全双工连接;其中所述服务器与一客户端建立全双工连接,进而使得所述客户端与多个所述容器均处于全双工通信链路中,所述客户端可通过所述全双工通信链路访问多个所述容器,所述连接请求是所述服务器根据所述客户端发送多个容器的容器信息生成。
在某些实施例中,所述容器连接模块,包括:
指定容器确定单元,根据每个容器的接口,确定容器信息中对应指定的多个容器;
bash进程创建单元,根据多个容器的数量,对应创建相同数量的bash进程;
进程加入单元,将创建的bash进程加入至对应容器的命名空间中;
绑定单元,将bash进程的stdin与所述容器的输入接口绑定,将bash进程的stdout和stderr与所述容器的输出接口绑定,进而与每个所述容器建立了全双工连接。
本申请提供的一种容器访问控制方法、装置、客户端及服务器,通过设置容器代理装置,即在容器之外设置容器代理,容器代理装置与容器是一对多的关系,进而不需要在每个容器内部设置代理,从而当需要访问多个容器时,不需要基于容器内多进程方式实现,不会额外增加一个通信进程,解决了目前多容器访问时增加资源消耗,且配置管理不方便的问题。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机设备,具体的,计算机设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
在一个典型的实例中计算机设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的由客户端执行的方法,或者,所述处理器执行所述程序时实现如上所述的由服务器执行的方法。
下面参考图5,其示出了适于用来实现本申请实施例的计算机设备600的结构示意图。
如图5所示,计算机设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM))603中的程序而执行各种适当的工作和处理。在RAM603中,还存储有系统600操作所需的各种程序和数据。CPU601、ROM602、以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡,调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口606。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装如存储部分608。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包括用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (18)
1.一种容器访问控制方法,其特征在于,包括:
客户端向与该客户端建立双工连接的服务器发送多个容器的容器信息,以使所述服务器根据所述容器信息向容器代理装置发送连接请求,从而使所述容器代理装置与所述服务器建立全双工连接,并使所述容器代理装置基于所述连接请求与多个所述容器建立全双工连接,进而所述客户端与所述容器均处于全双工通信链路中;
其中,所述客户端可通过所述全双工通信链路访问多个所述容器。
2.根据权利要求1所述的容器访问控制方法,其特征在于,还包括:
所述客户端将所述服务器返回的访问的容器中的数据转换为终端样式。
3.根据权利要求1所述的容器访问控制方法,其特征在于,所述客户端使用websocket协议与所述服务器进行通信。
4.一种容器访问控制方法,其特征在于,包括:
服务器根据与该服务器建立双工连接的客户端发出的多个容器的容器信息,生成连接请求;
服务器将所述连接请求发送至容器代理装置,从而使所述容器代理装置与所述服务器建立全双工连接,并使所述容器代理装置基于所述连接请求与多个所述容器建立全双工连接,进而所述客户端与所述容器均处于全双工通信链路中;
其中,所述客户端可通过所述全双工通信链路访问多个所述容器。
5.根据权利要求4所述的容器访问控制方法,其特征在于,还包括:
所述服务器转发访问数据至所述客户端,其中所述访问数据是由所述容器发出并经所述容器代理装置转发的数据。
6.根据权利要求4所述的容器访问控制方法,其特征在于,还包括:
审核所述客户端发送的访问命令,若审核通过,则将所述访问命令转发至所述容器代理装置。
7.一种容器访问控制方法,其特征在于,包括:
容器代理装置根据服务器发送的连接请求与多个容器建立全双工连接;
容器代理装置进一步与所述服务器建立全双工连接;其中所述服务器与一客户端建立全双工连接,进而使得所述客户端与多个所述容器均处于全双工通信链路中,所述客户端可通过所述全双工通信链路访问多个所述容器,所述连接请求是所述服务器根据所述客户端发送多个容器的容器信息生成。
8.根据权利要求7所述的容器访问控制方法,其特征在于,所述容器代理装置根据服务器发送的连接请求与多个容器建立全双工连接,包括:
所述容器代理装置根据每个容器的接口,确定容器信息中对应指定的多个容器;
所述容器代理装置根据多个容器的数量,对应创建相同数量的bash进程;
所述容器代理装置将创建的bash进程加入至对应容器的命名空间中;
所述容器代理装置将bash进程的stdin与所述容器的输入接口绑定,将bash进程的stdout和stderr与所述容器的输出接口绑定,进而与每个所述容器建立了全双工连接。
9.一种客户端,其特征在于,包括:
容器信息发送模块,与该客户端建立双工连接的服务器发送多个容器的容器信息,以使所述服务器根据所述容器信息向容器代理装置发送连接请求,从而使所述容器代理装置与所述服务器建立全双工连接,并使所述容器代理装置基于所述连接请求与多个所述容器建立全双工连接,进而所述客户端与所述容器均处于全双工通信链路中;
其中,所述客户端可通过所述全双工通信链路访问多个所述容器。
10.根据权利要求9所述的客户端,其特征在于,还包括:
终端样式转换模块,将所述服务器返回的访问的容器中的数据转换为终端样式。
11.根据权利要求9所述的客户端,其特征在于,所述客户端使用websocket协议与所述服务器进行通信。
12.一种服务器,其特征在于,包括:
前端通信模块,根据与该服务器建立双工连接的客户端发出的多个容器的容器信息,生成连接请求;
后端通信模块,将所述连接请求发送至容器代理装置,从而使所述容器代理装置与所述服务器建立全双工连接,并使所述容器代理装置基于所述连接请求与多个所述容器建立全双工连接,进而所述客户端与所述容器均处于全双工通信链路中;其中,所述客户端可通过所述全双工通信链路访问多个所述容器。
13.根据权利要求12所述的服务器,其特征在于,还包括:
访问数据转发模块,转发访问数据至所述客户端,其中所述访问数据是由所述容器发出并经所述容器代理装置转发的数据。
14.根据权利要求12所述的服务器,其特征在于,还包括:
审核模块,审核所述客户端发送的访问命令,若审核通过,则将所述访问命令转发至所述容器代理装置。
15.一种容器代理装置,其特征在于,包括:
容器连接模块,根据服务器发送的连接请求与多个容器建立全双工连接;
通信模块,进一步与所述服务器建立全双工连接;其中所述服务器与一客户端建立全双工连接,进而使得所述客户端与多个所述容器均处于全双工通信链路中,所述客户端可通过所述全双工通信链路访问多个所述容器,所述连接请求是所述服务器根据所述客户端发送多个容器的容器信息生成。
16.根据权利要求15所述的容器代理装置,其特征在于,所述容器连接模块,包括:
指定容器确定单元,根据每个容器的接口,确定容器信息中对应指定的多个容器;
bash进程创建单元,根据多个容器的数量,对应创建相同数量的bash进程;
进程加入单元,将创建的bash进程加入至对应容器的命名空间中;
绑定单元,将bash进程的stdin与所述容器的输入接口绑定,将bash进程的stdout和stderr与所述容器的输出接口绑定,进而与每个所述容器建立了全双工连接。
17.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至8任一项所述的方法的步骤。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至8任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910661858.5A CN110392053A (zh) | 2019-07-22 | 2019-07-22 | 容器访问控制方法、装置、客户端及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910661858.5A CN110392053A (zh) | 2019-07-22 | 2019-07-22 | 容器访问控制方法、装置、客户端及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110392053A true CN110392053A (zh) | 2019-10-29 |
Family
ID=68286821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910661858.5A Pending CN110392053A (zh) | 2019-07-22 | 2019-07-22 | 容器访问控制方法、装置、客户端及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110392053A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111796906A (zh) * | 2020-06-03 | 2020-10-20 | 科东(广州)软件科技有限公司 | 一种容器管理方法、装置、设备及存储介质 |
CN114070637A (zh) * | 2021-11-23 | 2022-02-18 | 北京天融信网络安全技术有限公司 | 基于属性标签的访问控制方法、系统、电子设备及存储介质 |
CN114726901A (zh) * | 2022-05-23 | 2022-07-08 | 安徽华云安科技有限公司 | 容器访问方法、装置、设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893205A (zh) * | 2015-11-20 | 2016-08-24 | 乐视云计算有限公司 | 监控基于docker创建的container的方法及系统 |
CN106933648A (zh) * | 2015-12-31 | 2017-07-07 | 中国电信股份有限公司 | 用于多租户容器资源管理的方法和系统 |
CN107493344A (zh) * | 2017-08-29 | 2017-12-19 | 郑州云海信息技术有限公司 | 一种Web访问Docker容器的方法及系统 |
CN107608763A (zh) * | 2017-09-26 | 2018-01-19 | 中国科学院声学研究所 | 一种通过Web浏览器进入Docker容器操作的方法 |
CN108762893A (zh) * | 2018-06-07 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种浏览器连接Docker容器的方法、装置和存储介质 |
-
2019
- 2019-07-22 CN CN201910661858.5A patent/CN110392053A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893205A (zh) * | 2015-11-20 | 2016-08-24 | 乐视云计算有限公司 | 监控基于docker创建的container的方法及系统 |
CN106933648A (zh) * | 2015-12-31 | 2017-07-07 | 中国电信股份有限公司 | 用于多租户容器资源管理的方法和系统 |
CN107493344A (zh) * | 2017-08-29 | 2017-12-19 | 郑州云海信息技术有限公司 | 一种Web访问Docker容器的方法及系统 |
CN107608763A (zh) * | 2017-09-26 | 2018-01-19 | 中国科学院声学研究所 | 一种通过Web浏览器进入Docker容器操作的方法 |
CN108762893A (zh) * | 2018-06-07 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种浏览器连接Docker容器的方法、装置和存储介质 |
Non-Patent Citations (1)
Title |
---|
白渐: "LAIN平台远程进入容器功能设计与实现", 《无》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111796906A (zh) * | 2020-06-03 | 2020-10-20 | 科东(广州)软件科技有限公司 | 一种容器管理方法、装置、设备及存储介质 |
CN114070637A (zh) * | 2021-11-23 | 2022-02-18 | 北京天融信网络安全技术有限公司 | 基于属性标签的访问控制方法、系统、电子设备及存储介质 |
CN114070637B (zh) * | 2021-11-23 | 2024-01-23 | 北京天融信网络安全技术有限公司 | 基于属性标签的访问控制方法、系统、电子设备及存储介质 |
CN114726901A (zh) * | 2022-05-23 | 2022-07-08 | 安徽华云安科技有限公司 | 容器访问方法、装置、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105024865B (zh) | 云联合即服务 | |
Hill et al. | Guide to cloud computing: principles and practice | |
RU2320015C2 (ru) | Развертывание информации о конфигурации | |
CN107092541A (zh) | 一种运用虚拟机进行存储性能测试的方法 | |
CN110392053A (zh) | 容器访问控制方法、装置、客户端及服务器 | |
CN109739478A (zh) | 前端项目自动化构建方法、装置、存储介质及电子设备 | |
CN109962940A (zh) | 一种基于云平台的虚拟化实例调度系统及调度方法 | |
CN103238138A (zh) | 用于云环境中的分区部署/重部署的网络接口 | |
CN103685441B (zh) | 一种基于龙芯终端的远程桌面控制系统 | |
CN109981322A (zh) | 基于标签的云资源管理的方法和装置 | |
CN103927216A (zh) | 用于管理虚拟装置的方法和系统 | |
CN107395674A (zh) | 一种应用系统访问异构区块链平台的方法及装置 | |
CN110019123A (zh) | 一种数据迁移方法和装置 | |
CN204790977U (zh) | 一种基于云计算的app自动编译系统和管理平台 | |
CN113495498B (zh) | 用于硬件设备的模拟方法、模拟器、设备和介质 | |
US8607205B2 (en) | Automatic generation of functional emulators for web service | |
CN110022323A (zh) | 一种基于WebSocket与Redux的跨终端实时交互的方法和系统 | |
CN108737402A (zh) | 移动终端安全防护方法和装置 | |
US10061566B2 (en) | Methods and systems to identify log write instructions of a source code as sources of event messages | |
CN101477647A (zh) | 业务流程展现控制系统 | |
CN109688174A (zh) | 一种基于多代理商服务的虚拟业务实现方法和装置 | |
CN110262841A (zh) | 一种对字节码进行增强的方法和装置 | |
CN113391903A (zh) | 可调度性模型的建立方法、装置、电子设备及存储介质 | |
CN106843851A (zh) | 基于ActiveMQ异构类加载器反序列化的实现方法及装置 | |
CN112395043A (zh) | 一种校园私有云部署方案及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191029 |
|
RJ01 | Rejection of invention patent application after publication |