CN108667779B - 一种远程登录容器的方法及服务器 - Google Patents

一种远程登录容器的方法及服务器 Download PDF

Info

Publication number
CN108667779B
CN108667779B CN201710210642.8A CN201710210642A CN108667779B CN 108667779 B CN108667779 B CN 108667779B CN 201710210642 A CN201710210642 A CN 201710210642A CN 108667779 B CN108667779 B CN 108667779B
Authority
CN
China
Prior art keywords
container
user
host
program
target container
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
Application number
CN201710210642.8A
Other languages
English (en)
Other versions
CN108667779A (zh
Inventor
杨坚锐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201710210642.8A priority Critical patent/CN108667779B/zh
Publication of CN108667779A publication Critical patent/CN108667779A/zh
Application granted granted Critical
Publication of CN108667779B publication Critical patent/CN108667779B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请实施例提供一种远程登录容器的方法及服务器,涉及计算机领域,实现远程登录任意类型的容器。具体方案包括:配置每个容器在启动时共享其所在host上静态编译的远程登录协议服务程序;在用户远程登录容器时,服务器根据用户指令,先登录host,再通过host切换到目标容器的命名空间内执行目标容器共享的host的远程登录协议服务程序;最后用户登录到远程登录协议服务程序,向用户提供PTS远程伪终端服务。本申请用于远程登录管理容器。

Description

一种远程登录容器的方法及服务器
技术领域
本申请涉及计算机领域,尤其涉及一种远程登录容器的方法及服务器。
背景技术
随着云计算技术的发展,容器(英文:container)作为一种新的虚拟化基础技术,适应微服务架构的发展趋势,在全云化(英文:all cloud)的当下掀起了一股狂潮。
容器是操作系统(英文:operating system,OS)中共享OS内核的隔离支撑环境。容器所在的运行环境称为宿主机(英文:host),该host既可以是硬件服务器(hardware),也可以是虚拟机(英文:virtual machine,VM),而容器是host上的进程,与host共享内核(英文:kernel),通过内核的命名空间(英文:namespace)实现了资源隔离,通过控制组(英文:control group,cgroup)实现了资源限制,从而提供了一个隔离受控的独立操作环境。
容器作为独立的操作环境,在其应用时就有登录容器并管理监控该容器的要求。当前,登录通常使用远程登录协议工具远程登录容器,其中,该远程登录协议包括安全外壳(英文:Secure Shell,SSH)协议或远程终端(英文:Telnet)协议。通过远程登录协议工具登录容器时,在容器内只要支持远程登录协议,并启动相应的网络服务程序(sshd或telnetd),容器管理者就可以通过SSH或Telnet客户端登录到启动的网络服务程序中,然后服务程序会自动关联登录Linux的login或shell程序,提供伪终端从动侧(英文:pseudoterminal slave,PTS)远程伪终端服务给用户,完成了远程登录。但是,该方法要求容器镜像中包含远程登录协议对应的服务程序(sshd或telnetd),并在容器中启动该服务程序,该方法不能兼容不支持远程登录协议的容器。
发明内容
本申请实施例提供一种远程登录容器的方法及服务器,能够实现远程登录任意容器。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种服务器,该服务器包括至少一个容器,及至少一个容器所在的host;至少一个容器中的每个容器与其所在的host共享内核。至少一个容器中的每个容器在启动时共享host上静态编译的远程登录协议服务程序及login程序或shell程序,该远程登录协议服务程序被配置为自动关联login或shell程序。其中,host用于,接收服务器的用户输入的登录host的登录指令,接纳用户登录该host;接收用户在host中通过容器工具输入的携带目标容器的标识的切换指令,根据目标容器的标识,切换到目标容器的命名空间内执行目标容器共享的host上静态编译的远程登录协议服务程序。其中,目标容器为至少一个容器中,用户请求远程登录的容器。目标容器用于,接收用户登录远程登录协议服务程序的请求,接纳用户登录远程登录协议服务程序;在用户登录到远程登录协议服务程序时,远程登录协议服务程序自动关联的login或shell程序向用户提供PTS远程伪终端服务,用于用户远程登录管理目标容器。
本申请提供的服务器,每个容器在启动时共享host上的远程登录协议服务程序,用于容器管理者远程登录容器。由于host与容器共享内核,容器共享的host上静态编译的程序运行时只依赖内核,不依赖容器自身的文件系统,对容器无要求,故也可以适配所有类型的容器,与所有类型的容器兼容,实现远程登录任意容器。
结合第一方面,在一种可能的实现方式中,若服务器的用户的操作端与目标容器处于不同的内外网络,即访问容器时需进行广域网(英文:wide area network,WAN)与局域网(英文:local area network,LAN)之间的转换,则每个容器在启动时共享其所在的host上静态编译的端口转发程序。具体的,host还用于,接收用户在host中输入的为目标容器建立反向通道的命令,通过容器工具切换到目标容器的命名空间内执行共享的host上静态编译的端口转发程序启动远端反向转发,建立反向通道;其中,反向通道用于在用户的操作端与目标容器之间透传报文。这样一来,通过容器共享其所在的host上静态编译的端口转发程序,转发端口的远端反向转发机制通过建立好的反向通道将用户操作端通过通道映射端口发起的登录链接映射至容器内,实现跨越网络地址转换(英文:Network AddressTranslation,NAT)的远程登录管理容器。
具体的,建立的反向通道是目标容器所在的网络到用户的操作端所在的网络的通道,该通道在两个网络中各具有一个服务端口。在建立反向通道时,在用户的操作端所在网络向用户提供了反向端口的通道映射端口,用户通道其操作端访问该通道映射端口的链接,将被反向通道透传映射至目标容器内,从而实现了跨NAT登录及管理容器。
结合第一方面或上述任一种可能的实现方式,在一种可能的实现方式中,目标容器具体用于:通过反向通道的透传,接收用户在操作端输入的访问通道映射端口的登录远程登录协议服务程序的请求;通过反向通道,将PTS远程伪终端服务透传给用户。提供了反向通道在用户的操作端与目标容器之间的透传时的具体功能,实现跨越NAT的远程登录容器。
结合第一方面或上述任一种可能的实现方式,在一种可能的实现方式中,远程登录协议可以包括SSH协议或者Telnet协议。
结合第一方面或上述任一种可能的实现方式,在一种可能的实现方式中,端口转发程序可以包括SSH端口转发程序。
结合第一方面或上述任一种可能的实现方式,在一种可能的实现方式中,host可以包括硬件服务器或者虚拟机。其中,当host为硬件服务器时,host就是一台标准的服务器,包括中央处理器(英文:central processing unit,CPU)、内存、网络接口等。当host为虚拟机时,该虚拟机可以看作是一台标准的服务器,由系统管理程序(Hypervisor)仿真出各种硬件设备。
第二方面,提供一种远程登录容器的方法,应用于服务器,该服务器包括至少一个容器,及至少一个容器所在的host;至少一个容器中每个容器与其所在的host共享内核;至少一个容器中每个容器在启动时共享其所在的host上静态编译的远程登录协议服务程序及login或shell程序,远程登录协议服务程序被配置为自动关联login或shell程序。该方法具体可以包括:host接收服务器的用户输入的登录host的登录指令,接纳用户登录该host;host接收用户在host中通过容器工具输入的携带目标容器的标识的切换指令,根据目标容器的标识,切换到目标容器的命名空间内执行目标容器共享的host上静态编译的远程登录协议服务程序;其中,目标容器为服务器中至少一个容器中,用户请求远程登录的容器;目标容器接收用户登录远程登录协议服务程序的请求,接纳用户登录远程登录协议服务程序;在用户登录到远程登录协议服务程序时,远程登录协议服务程序自动关联的login或shell程序向用户提供PTS远程伪终端服务,用于用户远程登录管理目标容器。
需要说明的是,第二方面提供的远程登录容器的方法,由第一方面提供的服务器实现,其具体实现相同,可以达到相同的有益效果,此处不再进行赘述。
结合第二方面,在一种可能的实现方式中,若用户的操作端与目标容器处于不同的内外网络,至少一个容器中每个容器在启动时共享host上静态编译的端口转发程序。在接收用户在host中通过容器工具输入的携带目标容器的标识的切换指令,根据目标容器的标识,切换到目标容器的命名空间内执行目标容器共享的host上静态编译的远程登录协议服务程序之后,本申请提供的远程登录容器的方法还可以包括:host接收用户在host中输入的为目标容器建立反向通道的命令,通过容器工具切换到目标容器的命名空间内执行共享的host上静态编译的端口转发程序启动远端反向转发,建立反向通道;其中,反向通道用于在用户的操作端与目标容器之间透传报文。
结合第二方面或上述任一种可能的实现方式,在一种可能的实现方式中,若用户的操作端与目标容器处于不同的内外网络,目标容器接收用户登录远程登录协议服务程序的请求,具体可以实现为:通过反向通道的透传,目标容器接收用户在操作端输入的访问通道映射端口的登录远程登录协议服务程序的请求。目标容器向用户提供PTS远程伪终端服务,具体可以实现为:通过反向通道,目标容器将PTS远程伪终端服务透传给用户。
第三方面,本申请实施例提供了另一种服务器,该服务器可以实现上述第二方面的方法示例的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。
结合第三方面,在一种可能的实现方式中,该服务器包括处理器和通信接口,该处理器被配置为支持该服务器执行上述方法中相应的功能。该通信接口用于支持该服务器与其他网元之间的通信。该服务器还可以包括存储器,该存储器用于与处理器耦合,其保存该服务器必要的程序指令和数据。
第四方面,本申请实施例提供了一种计算机存储介质,用于储存为上述方法示例的功能所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
上述第三方面或第四方面提供的方案,用于实现上述第一方面提供的服务器的功能,因此可以与第一方面达到相同的有益效果,此处不再进行赘述。
附图说明
图1为本申请实施例提供的一种服务器的结构示意图;
图2为本申请实施例提供的另一种服务器的结构示意图;
图3为本申请实施例提供的一种远程登录容器的方法的流程示意图;
图4为本申请实施例提供的另一种远程登录容器的方法的流程示意图;
图5为本申请实施例提供的再一种服务器的结构示意图;
图6为本申请实施例提供的又一种服务器的结构示意图。
具体实施方式
当前,容器部署在服务器中。如果容器支持远程登录协议,并在容器内部运行远程登录协议的服务程序,容器管理者就可以通过网络命令登录到运行的远程登录协议的服务程序中,服务程序自动关联的login或shell程序则提供PTS远程伪终端服务给容器管理者登录。该过程要求容器支持相关远程登录协议,并且自身运行远程登录协议的服务程序,不能兼容不支持远程登录协议的容器,该不支持远程登录协议的容器可以是只包括单一进程或者多个进程的容器。基于此,本申请的基本原理是:配置容器在启动时,共享其所在的host上静态编译的远程登录协议的服务程序及login或shell程序。容器管理者远程登录容器时,先通过网络登录host,再通过host上的内部网络登录到要访问的容器内。由于容器与其所在的host共享内核,所以容器共享的host上静态编译的服务程序的运行不依赖容器自身的文件系统,对容器本身无要求,远程登录管理时能够兼容不支持远程登录协议的容器。
可选的,容器所在的host可以为硬件服务器,此时,host就是一台标准的服务器,即host就是上述的服务器,host有CPU、内存、存储器、网络等硬件配置。容器作为host的进程,运行在host的CPU上,与host共享内核,共享的静态编译的远程登录服务程序部署在host的存储磁盘上,host和容器都可以访问。
可选的,容器所在的host可以为虚拟机,虚拟机也可以看作是一台标准的服务器,虚拟机就是服务器上的来宾(英文:guest)系统。相对于服务器来说,运行在服务器上的系统为host系统,虚拟机为guest系统,guest系统又可看作是容器的host。由Hypervisor为虚拟机仿真出各种硬件设备,包括CPU、内存、存储器、网络等。容器作为虚拟机上的进程,运行在仿真出的虚拟机的CPU上,与虚拟机共享内核,共享的远程登录服务程序部署在仿真出的虚拟机的存储磁盘上,虚拟机和容器都可以访问。
本申请实施例提供的远程登录容器的方法,应用于如图1所示的服务器10中。图1中示意了服务器10的内部结构。如图1所示,服务器10是一个标准服务器,包括处理器101、内存102、存储磁盘103、网络接口卡104及通信接口105。
其中,内存102,用于存储程序代码,并将该程序代码传输给该处理器101,以便处理器101执行程序代码实现服务器10的各种功能。内存102可以是易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,RAM);或者非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read-only memory,ROM),快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,HDD)或固态硬盘(英文:solid-state drive,SSD);或者上述种类的存储器的组合。存储磁盘103用于安装系统及存放文件。
处理器101是服务器10的控制中心,可以是一个CPU,也可以是特定应用集成电路(英文:application-specific integrated circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器(英文:digital signalprocessor,DSP),或,一个或者多个现场可编程门阵列(英文:field-programmable gatearray,FPGA)。处理器101可以通过运行或执行存储在内存102或存储磁盘103内的程序代码,以及调用存储在内存102或存储磁盘103内的数据,实现服务器10的各种功能。
网络接口卡104用于支持服务器10接入网络。
通信接口105用于服务器10与其他网元的通信。
在图1所示的服务器10中,可以将服务器10本身作为host,配置进程作为容器。当然,也可以在服务器10中运行的host系统中,通过Hypervisor仿真出各种硬件设备配置虚拟机,在虚拟机上配置进程作为容器,该虚拟机则为容器的host。
图2示意了与本申请相关的一种服务器20的架构。该服务器20包括至少一个容器202,及至少一个容器202所在的host 201。每个容器202与其所在的host201共享内核,通过命名空间隔离。每个容器202在启动时共享host 201上静态编译的远程登录协议服务程序及login程序或shell程序,远程登录协议服务程序被配置为自动关联login程序或shell程序。其中,所述login程序或shell程序在Linux中用于提供登录管理界面。至少一个容器202在图2中示意为202a、202b、……、202n。
需要说明的是,图2示意的服务器20的架构,从功能单元出发描述。服务器20的硬件架构与图1示意的服务器10相同。在服务器20中,host 201是至少一个容器202a-202n的host,至少一个容器202a-202n是运行在host 201上的进程。
其中,host 201用于,接收服务器20的用户输入的登录host 201的登录指令,根据该指令使该用户登录host201。接收该用户在host 201中通过容器工具输入的携带目标容器的标识的切换指令,根据切换指令中的目标容器的标识,切换到目标容器的命名空间内执行目标容器共享的host 201上静态编译的远程登录协议服务程序。其中,目标容器为至少一个容器202a-202n中,服务器20的用户请求远程登录的容器。
目标容器用于,接收服务器20的用户登录host201后发送的登录远程登录协议服务程序的请求,根据所述请求使所述用户登录远程登录协议服务程序。在用户登录到远程登录协议服务程序时,远程登录协议服务程序自动关联的login或shell程序向该用户提供PTS远程伪终端服务,用于该用户远程登录使用目标容器202。
具体的,上述根据指令或请求使用户登录,可以实现为接纳用户登录。接纳用户登录具体实现为:根据登录指令或者登录请求,验证该用户是否合法,当用户为合法用户时,允许该用户登录。
可选的,容器工具由容器引擎提供。示例性的,容器工具可以包括docker引擎的docker attach或者docker exec。当然,本申请实施例对于容器引擎提供的容器工具的类型不进行具体限定。
可选的,容器工具可以是第三方提供的工具。示例性的,容器工具可以包括nsenter工具。当然,本申请实施例对于第三方提供的容器工具的类型不进行具体限定。
可选的,远程登录协议可以包括SSH协议或者Telnet协议。当然,根据实际需要,可以选择其他远程登录协议,本申请实施例对于远程登录协议的具体内容不进行限定。
本申请提供的服务器20,每个容器202在启动时共享其所在的host上静态编译的远程登录协议服务程序,用于容器管理者远程登录容器。由于host与容器共享内核,容器共享其所在host上静态编译的远程登录协议服务程序及login或shell程序,该程序运行时只依赖内核,不依赖容器自身的文件系统,对容器无要求,故可以与所有类型的容器兼容。
进一步的,若服务器20的用户的操作端与目标容器处于不同的内外网络,通常用户的操作端位于外部WAN,目标容器位于内部LAN网络,即操作端与目标容器跨越了NAT,则操作端无法直接访问目标容器。在此情况下,每个容器202在启动时共享其所在的host 201上的端口转发程序。相应的,host 201还用于,接收该用户在host 201中输入的为目标容器建立反向通道的命令,通过容器工具切换到目标容器的命名空间内执行端口转发程序建立反向通道。其中,建立的反向通道用于在用户的操作端与目标容器202之间透传报文。通过反向端口的透传,登录可以远程跨越NAT登录并管理容器。具体的,用户在其操作端访问反向通道在操作端网络中的通道映射端口发起登录请求,该登录请求则被反向通道透传到目标容器内,实现了跨越NAT的容器访问。
可选的,端口转发程序可以包括SSH端口转发程序。当然,端口转发程序也可以包括socat端口转发程序。本申请实施例对于端口转发程序的类型也不进行具体限定。凡是能进行不同网络地址间端口映射转发的程序均称之为端口转发程序。
具体的,在建立反向通道之后,目标容器202具体可以用于:通过反向通道的透传,接收所述用户在其操作端输入的访问通道映射端口的登录远程登录协议服务程序的请求。通过所述反向通道的透传,将PTS远程伪终端服务透传给用户的操作端,实现跨越NAT登录并管理容器。
下面结合附图,对本申请的方法实施例进行具体阐述。
一方面,本申请实施例提供一种远程登录容器的方法,应用于服务器,该服务器包括至少一个容器,及至少一个容器所在的host。至少一个容器中的每个容器与其所在的host共享内核。至少一个容器中的每个容器在启动时共享其所在的host上静态编译的远程登录协议服务程序及login程序或shell程序,远程登录协议服务程序被配置为自动关联login程序或shell程序。如图3所示,该方法可以包括:
S301、host接收服务器的用户输入的登录host的登录指令,接纳用户登录host。
其中,host可以包括硬件服务器或者虚拟机。本申请实施例对于容器所在的host的具体类型不进行限定。其中,所述接纳用户登录host包括:根据登录指令验证该用户是否合法,当该用户为合法用户时,允许该用户登录host。
示例性的,服务器的用户可以在其操作端执行如下指令,以发送登录host的登录指令:ssh user@host_ip。其中,ssh user为用户的标识,host_ip为请求登录的host的网络协议(英文Internet Protocol,IP)地址。用户在操作端输入上述指令,则登录到host_ip指示的host。
当服务器的用户输入上述指令后,host_ip指示的host将接收到用户输入的登录host的登录指令,并接纳用户登录host。
需要说明的是,接纳用户登录host,是指服务器对用户输入指令的响应过程,此处不再进行赘述,也不进行限定。
S302、host接收用户在host中通过容器工具输入的携带目标容器的标识的切换指令,根据目标容器的标识,切换到目标容器的命名空间内执行目标容器共享的host上静态编译的远程登录协议服务程序。
其中,目标容器为至少一个容器中,用户请求远程登录的容器。
可选的,远程登录协议服务程序可以为SSH协议或者Telnet协议,其对应的服务程序则为sshd程序或者telnetd程序。
具体的,S302中host接收到的切换指令,是服务器的用户在S301中登录到host之后,在host中操作容器工具发送的。
示例性的,服务器的用户可通过在host中操作容器工具docker exec切换到目标容器(container_id指示的容器)的命名空间内执行目标容器共享的host上静态编译的远程登录协议服务程序sshd的指令如下:docker exec–it container_id local_path/sshd。其中,docker exec为容器引擎提供的容器工具,container_id为用户远程登录管理的目标容器,local_path为本地通道,sshd为目标容器在启动时共享的其所在的host上静态编译的远程登录协议服务程序。用户在操作端输入上述指令,则通过容器引擎提供的容器工具docker exec,切换到ontainer_id指示的目标容器的命名空间内,在目标容器的本地通道中执行远程登录协议服务程序sshd。
当服务器中的用户输入上述指令后,host将接收到切换指令,并切换到目标容器的命名空间内执行目标容器共享的host上静态编译的远程登录协议服务程序sshd。具体来说,目标容器的命名空间将sshd服务程序从host中拷贝一份到该命名空间中,并执行该拷贝的服务程序。
需要说明的是,对于切换到目标容器的命名空间内执行目标容器共享的host上静态编译的远程登录协议服务程序,则是服务器对用户输入指令的响应过程,此处不再进行赘述,也不进行限定。
S303、目标容器接收用户登录远程登录协议服务程序的请求,接纳用户登录远程登录协议服务程序。
具体的,在S302中执行远程登录协议服务程序之后,在S303中登录在S302中执行的远程登录协议服务程序。
示例性的,服务器的用户可以在其操作端执行如下指令,以发送登录远程登录协议服务程序的请求:ssh user@container_ip。其中,ssh user为用户的标识,container_ip为请求登录的目标容器的IP地址。用户在操作端输入上述指令,则登录到container_ip指示的目标容器中启动的远程登录协议服务程序。
当服务器的用户输入上述指令后,container_ip指示的目标容器将接收到用户登录远程登录协议服务程序的请求,并接纳用户登录远程登录协议服务程序。
需要说明的是,对于接纳用户登录远程登录协议服务程序,则是服务器对用户输入的登录远程登录协议服务程序指令的响应过程,此处不再进行赘述,也不进行限定。
示例性的,所述接纳用户登录远程登录协议服务程序包括:根据登录请求验证该用户是否合法,当该用户为合法用户时,允许该用户登录容器内的远程登录协议服务程序。
S304、在用户登录到远程登录协议服务程序时,远程登录协议服务程序自动关联的login或shell程序向用户提供PTS远程伪终端服务,用于用户远程登录管理目标容器。
在S304之后,服务器的用户使用PTS远程伪终端服务即可远程登录管理目标容器。
本申请提供的远程登录容器的方法,配置每个容器在启动时共享host上静态编译的远程登录协议服务程序login程序或shell程序,用于容器管理者远程登录容器。由于host与容器共享内核,容器共享host上静态编译的远程登录协议服务程序login程序或shell程序,该共享的程序运行时只依赖内核,不依赖容器自身的文件系统,因此可以兼容各种类型的容器,实现远程登录各种类型的容器。
进一步的,若用户的操作端与目标容器处于不同的内外网络,用户的操作端与目标容器跨越NAT,即用户登录容器需从WAN到LAN,容器提供服务给用户需要从LAN到WAN,为了使得远程登录容器的过程支持跨越NAT,则配置每个容器在启动时共享其所在host上静态编译的端口转发程序。如图4所示,本申请实施例提供的远程登录容器的方法在S302之后,还可以包括S302a。
S302a、host接收用户在host中输入的为目标容器建立反向通道的命令,通过容器工具切换到目标容器的命名空间内执行共享的host上静态编译的端口转发程序建立反向通道。
其中,反向通道用于在用户的操作端与目标容器之间透传报文,实现了跨越NAT的远程登录容器。透传即是透明传送,即传送网络无论传输的报文内容是什么,只负责将需要传送的报文传送到目的节点,同时保证传输的质量即可,而不对传输的报文进行任何处理。
示例性的,端口转发程序为SSH程序,建立反向通道即执行ssh-Nf-R port:host:hostport user@remote_ip。其中,ssh-Nf-R为远端反向转发指令,port为远端(即用户操作端)映射端口,host为目标容器自身的IP地址,hostport为启动的目标容器内远程登录协议服务程序(sshd或telnetd)的端口,user为用户操作端的用户名,remote_ip为用户操作端的IP地址。当用户在操作端执行上述指令后,服务器通过响应该指令,建立了用户的操作端(user@remote_ip指示的操作端)与目标容器(host指示的目标容器)之间的反向通道,并向用户提供了port指示的通道映射端口。
当本申请实施例提供的远程登录容器的方法在S302之后还包括S302a时,S303和S304通过下述过程实现。
S303中目标容器接收用户登录远程登录协议服务程序的请求,具体可以实现为:通过反向通道的透传,目标容器接收用户在其操作端输入的访问通道映射端口的登录远程登录协议服务程序的请求。
S304中目标容器向用户提供PTS远程伪终端服务,具体可以实现为:通过反向通道,目标容器将PTS远程伪终端服务透传给用户。
示例性的,涉及跨越NAT的场景可以为用户的操作端在公有云网络内,目标容器部署到私有云网络的边缘端,用户的操作端与目标容器在不同的内外网络。通过本申请提供的远程登录容器的方法,可以通过SSH端口转发程序的转发机制,根据用户的建立反向通道的指令,先建立私有云网络到公有云网络的反向通道以及该反向通道在公有云网络中向用户开放的通道映射端口。在远程登录目标容器时,从用户的操作端(此场景中的公有云端)发起SSH链接到公有云网络中的通道映射端口上,然后在公有云端登录通道映射端口发起登录请求,SSH端口转发程序的远端反向转发机制自动把这个登录请求链接通过先建好的反向SSH通道映射到容器内,从而登录进容器内启动的服务程序内,实现边缘容器远程登录和管理。
上述主要从容器管理者远程登录服务器中的容器的工作过程的角度对本申请实施例提供的方案进行了介绍。可以理解的是,服务器为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对服务器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图5示出了上述实施例中所涉及的服务器的一种可能的结构示意图。如图5所示,服务器50可以包括:接收单元501,接纳单元502。接收单元501用于接收用户输入的指令,接纳单元502用于根据接收单元501接收的指令,响应指令配置服务器的功能。具体的,接收单元501及接纳单元502共同支持服务器50执行图3或图4中的过程S301至S304。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,图6示出了上述实施例中所涉及的服务器的再一种可能的结构示意图。服务器60可以包括:处理模块601、通信模块602、接口模块603。处理模块601用于对服务器60的动作进行控制管理,例如,处理模块601用于支持服务器60执行图3或图4中的过程S301至S304,和/或用于本文所描述的技术的其它过程。通信模块602用于支持服务器60与外界的交互,例如人机交互。接口模块603用于支持服务器60接入网络。服务器60还可以包括存储模块604,用于存储服务器60的程序代码和数据。
其中,处理模块601可以为图1所示的服务器10的实体结构中的处理器101,可以是处理器或控制器,例如可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块602可以是图1所示的服务器10的实体结构中的通信接口105。接口模块603可以是图1所示的服务器10的实体结构中的网络接口卡104。存储模块604可以是图1所示的服务器10的实体结构中的内存102及存储磁盘103。
当处理模块601为处理器,存储模块604包括内存及存储磁盘,通信模块602为通信接口,接口模块603为网络接口卡时,本申请实施例图6所涉及的服务器60可以为图1所示的服务器10。
如前述,本申请实施例提供的服务器可以用于实施上述本申请各实施例实现的方法,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请各实施例。
结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM、闪存、ROM、可擦除可编程只读存储器(英文:erasable programmableROM,EPROM)、电可擦可编程只读存储器(英文:electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (10)

1.一种服务器,其特征在于,所述服务器包括至少一个容器,及所述至少一个容器所在的宿主机host;所述至少一个容器中的每个容器与所述host共享内核;所述至少一个容器中的每个容器在启动时共享所述host上静态编译的远程登录协议服务程序及login程序或shell 程序,所述远程登录协议服务程序被配置为自动关联所述login程序或shell 程序;其中:
所述host用于,接收所述服务器的用户输入的登录所述host的登录指令,接纳所述用户登录所述host;接收所述用户在所述host中通过容器工具输入的携带目标容器的标识的切换指令,根据所述目标容器的标识,切换到所述目标容器的命名空间内执行所述目标容器共享的所述host上静态编译的远程登录协议服务程序;其中,所述目标容器为所述至少一个容器中,所述用户请求远程登录的容器;
所述目标容器用于,接收所述用户登录所述远程登录协议服务程序的请求,接纳所述用户登录所述远程登录协议服务程序;在所述用户登录到所述远程登录协议服务程序时,所述远程登录协议服务程序自动关联的login或shell程序向所述用户提供伪终端从动侧PTS远程伪终端服务,用于所述用户远程登录管理所述目标容器。
2.根据权利要求1所述的服务器,其特征在于,若所述用户的操作端与所述目标容器处于不同的内外网络,所述至少一个容器中的每个容器在启动时共享所述host上静态编译的端口转发程序;
所述host还用于,接收所述用户在所述host中输入的为所述目标容器建立反向通道的命令,通过所述容器工具切换到所述目标容器的命名空间内执行所述端口转发程序,建立反向通道;其中,所述反向通道用于在所述用户的操作端与所述目标容器之间透传报文。
3.根据权利要求2所述的服务器,其特征在于,所述目标容器具体用于:
通过所述反向通道的透传,接收所述用户在所述操作端输入的访问通道映射端口的登录所述远程登录协议服务程序的请求;
通过所述反向通道的透传,将所述PTS远程伪终端服务透传给所述用户。
4.根据权利要求1-3任一项所述的服务器,其特征在于,远程登录协议包括安全外壳SSH协议或者远程终端Telnet协议。
5.根据权利要求2或3所述的服务器,其特征在于,所述端口转发程序包括SSH端口转发程序。
6.一种远程登录容器的方法,其特征在于,应用于服务器,所述服务器包括至少一个容器,及所述至少一个容器所在的宿主机host;所述至少一个容器中的每个容器与所述host共享内核;所述至少一个容器中的每个容器在启动时共享所述host上静态编译的远程登录协议服务程序及login程序或shell 程序,所述远程登录协议服务程序被配置为自动关联所述login或shell程序;所述方法包括:
所述host接收所述服务器的用户输入的登录所述host的登录指令,接纳所述用户登录所述host;
所述host接收所述用户在所述host中通过容器工具输入的携带目标容器的标识的切换指令,根据所述目标容器的标识,切换到所述目标容器的命名空间内执行所述目标容器共享的所述host上静态编译的远程登录协议服务程序;其中,所述目标容器为所述至少一个容器中,所述用户请求远程登录的容器;
所述目标容器接收所述用户登录所述远程登录协议服务程序的请求,接纳所述用户登录所述远程登录协议服务程序;在所述用户登录到所述远程登录协议服务程序时,所述远程登录协议服务程序自动关联的login或shell程序向所述用户提供伪终端从动侧PTS远程伪终端服务,用于所述用户远程登录管理所述目标容器。
7.根据权利要求6所述的方法,其特征在于,若所述用户的操作端与所述目标容器处于不同的内外网络,所述至少一个容器中的每个容器在启动时共享所述host上静态编译的端口转发程序;
在所述host接收所述用户在所述host中通过容器工具输入的携带目标容器的标识的切换指令,根据所述目标容器的标识,切换到所述目标容器的命名空间内执行所述目标容器共享的所述host上静态编译的远程登录协议服务程序之后,所述方法还包括:
所述host接收所述用户在所述host中输入的为所述目标容器建立反向通道的命令,通过所述容器工具切换到所述目标容器的命名空间内执行所述端口转发程序启动远端反向转发,建立反向通道;其中,所述反向通道用于在所述用户的操作端与所述目标容器之间透传报文。
8.根据权利要求7所述的方法,其特征在于,
所述目标容器接收所述用户登录所述远程登录协议服务程序的请求,包括:
通过所述反向通道的透传,所述目标容器接收所述用户在所述操作端输入的访问通道映射端口的登录所述远程登录协议服务程序的请求;
所述目标容器向所述用户提供所述PTS远程伪终端服务,包括:
通过所述反向通道的透传,所述目标容器将所述PTS远程伪终端服务透传给用户。
9.根据权利要求6-8任一项所述的方法,其特征在于,远程登录协议包括安全外壳SSH协议或者远程终端Telnet协议。
10.根据权利要求7或8所述的方法,其特征在于,所述端口转发程序包括SSH端口转发程序。
CN201710210642.8A 2017-03-31 2017-03-31 一种远程登录容器的方法及服务器 Active CN108667779B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710210642.8A CN108667779B (zh) 2017-03-31 2017-03-31 一种远程登录容器的方法及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710210642.8A CN108667779B (zh) 2017-03-31 2017-03-31 一种远程登录容器的方法及服务器

Publications (2)

Publication Number Publication Date
CN108667779A CN108667779A (zh) 2018-10-16
CN108667779B true CN108667779B (zh) 2020-09-08

Family

ID=63784541

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710210642.8A Active CN108667779B (zh) 2017-03-31 2017-03-31 一种远程登录容器的方法及服务器

Country Status (1)

Country Link
CN (1) CN108667779B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110286999B (zh) * 2019-05-28 2023-08-29 平安科技(深圳)有限公司 访问程序关联性隔离器的方法、装置及计算机可读存储介质
CN112148348B (zh) * 2019-06-28 2023-10-20 杭州海康威视数字技术股份有限公司 任务处理方法、装置及存储介质
CN114143315A (zh) * 2021-11-30 2022-03-04 阿里巴巴(中国)有限公司 边缘云系统、主机访问方法及设备
CN114629889B (zh) * 2022-03-15 2024-03-15 北京天融信网络安全技术有限公司 远程控制链接的建立方法、装置、设备及介质
CN114710477B (zh) * 2022-03-23 2024-04-30 中国工商银行股份有限公司 执行命令的方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102271145A (zh) * 2010-06-04 2011-12-07 国云科技股份有限公司 一种虚拟计算机集群及其实施方法
CN104125243A (zh) * 2013-04-23 2014-10-29 浙江大学 一种穿透内网远程连接大规模虚拟机的方法
CN104486192A (zh) * 2014-12-05 2015-04-01 国云科技股份有限公司 一种虚拟网络隔离方法
CN105490846A (zh) * 2015-12-07 2016-04-13 中国电子科技集团公司第三十二研究所 服务器虚拟化管理系统及方法
CN105872019A (zh) * 2016-03-23 2016-08-17 北京搜狐新媒体信息技术有限公司 一种Web端登录Docker容器的方法和装置
CN105978781A (zh) * 2016-06-28 2016-09-28 浪潮电子信息产业股份有限公司 建立Docker容器的网络连接的方法、系统以及客户端

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9979751B2 (en) * 2013-09-20 2018-05-22 Open Text Sa Ulc Application gateway architecture with multi-level security policy and rule promulgations

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102271145A (zh) * 2010-06-04 2011-12-07 国云科技股份有限公司 一种虚拟计算机集群及其实施方法
CN104125243A (zh) * 2013-04-23 2014-10-29 浙江大学 一种穿透内网远程连接大规模虚拟机的方法
CN104486192A (zh) * 2014-12-05 2015-04-01 国云科技股份有限公司 一种虚拟网络隔离方法
CN105490846A (zh) * 2015-12-07 2016-04-13 中国电子科技集团公司第三十二研究所 服务器虚拟化管理系统及方法
CN105872019A (zh) * 2016-03-23 2016-08-17 北京搜狐新媒体信息技术有限公司 一种Web端登录Docker容器的方法和装置
CN105978781A (zh) * 2016-06-28 2016-09-28 浪潮电子信息产业股份有限公司 建立Docker容器的网络连接的方法、系统以及客户端

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于Docker容器的Web集群设计与实现;刘熙等;《电子设计工程》;20160524;第24卷(第8期);117-119 *

Also Published As

Publication number Publication date
CN108667779A (zh) 2018-10-16

Similar Documents

Publication Publication Date Title
CN108667779B (zh) 一种远程登录容器的方法及服务器
AU2015256010B2 (en) Migration of applications between an enterprise-based network and a multi-tenant network
US11622010B2 (en) Virtualizing device management services on a multi-session platform
JP6771650B2 (ja) クラウドコンピューティングシステムにおいて仮想マシンが物理サーバにアクセスするための方法、装置、およびシステム
KR101782342B1 (ko) 가상 스토리지 타겟 오프로드 기법
KR101530472B1 (ko) 모바일 컴퓨팅 디바이스를 통한 관리형 usb 서비스들의 원격 전달을 위한 방법 및 장치
US9448830B2 (en) Service bridges
US10050939B2 (en) Techniques for communication in hybrid cloud system
CN113452830B (zh) 安卓云手机的批量控制方法、计算机可读介质及电子设备
WO2023035758A1 (zh) 输入法设置方法及其装置、输入方法及电子设备
EP3336738A1 (en) Secure communications between virtual computing instances
US10171292B1 (en) Deploying a cloud infrastructure in a remote site
US20230325220A1 (en) Hosting dpu management operating system using dpu software stack
US10489121B2 (en) Method and apparatus for determining system information in a device having a plurality of processors, each including virtual machines and some located on separate insertable boards
US20180097914A1 (en) Host machine discovery and configuration
US11363113B1 (en) Dynamic micro-region formation for service provider network independent edge locations
US20240028375A1 (en) Control plane lifecycle management with dpu devices
US11595464B2 (en) Migration of network file copy operations between host computing devices
KR102409272B1 (ko) 가상 플랫폼 환경에서의 통신 대상 ip를 기반으로 공공 ip를 공유하는 방법 및 호스트 장치
US20240111562A1 (en) User assigned network interface queues
US20230370378A1 (en) Providing compatible network resources to program components executing in a virtualized environment
US20230418647A1 (en) Providing name resolution services to components executing in a virtualized environment
KR102441860B1 (ko) 공급자 네트워크 서비스 확장
US20230325222A1 (en) Lifecycle and recovery for virtualized dpu management operating systems
Huang et al. SDN-based container management scheme with flexibly addresses allocation capability

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
GR01 Patent grant
GR01 Patent grant