CN110493269B - 一种Web远程Docker容器桌面的方法 - Google Patents

一种Web远程Docker容器桌面的方法 Download PDF

Info

Publication number
CN110493269B
CN110493269B CN201910907578.8A CN201910907578A CN110493269B CN 110493269 B CN110493269 B CN 110493269B CN 201910907578 A CN201910907578 A CN 201910907578A CN 110493269 B CN110493269 B CN 110493269B
Authority
CN
China
Prior art keywords
container
token
docker
vnc
vnc server
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
CN201910907578.8A
Other languages
English (en)
Other versions
CN110493269A (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.)
Fujian Zhongrui Network Co ltd
Original Assignee
Fujian Zhongrui Network 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 Fujian Zhongrui Network Co ltd filed Critical Fujian Zhongrui Network Co ltd
Priority to CN201910907578.8A priority Critical patent/CN110493269B/zh
Publication of CN110493269A publication Critical patent/CN110493269A/zh
Application granted granted Critical
Publication of CN110493269B publication Critical patent/CN110493269B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • 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/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • 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/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/108Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
    • 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]
    • 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/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • 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/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents therefor

Landscapes

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

Abstract

本发明涉及一种Web远程Docker容器桌面的方法,包括以下步骤:1)在既能访问容器网络又能访问Web客户端网络的主机中部署VNC服务端代理;2)在容器的宿主机中部署Docker后台,Docker后台为每一个容器生成一个令牌,并将容器的相关信息通知给VNC服务端代理;3)Web用户在Web客户端登入Docker后台,当访问一个容器时,Web客户端和VNC服务端代理建立Websocket连接;VNC服务端代理比较容器的相关信息是否一致,否则拒绝该用户的访问,是则连接对应的VNC服务端,然后将两条连接对应起来,中转两者之间的报文数据。该方法有利于使Web安全、便捷地远程连接VNC服务端。

Description

一种Web远程Docker容器桌面的方法
技术领域
本发明涉及Docker容器技术领域,具体涉及一种Web远程Docker容器桌面的方法。
背景技术
一般Docker容器主要运行不带有GUI的进程,这些进程可以在不带有GUI桌面的环境下运行,但是带有GUI的进程无法在该环境下运行展示交互窗口,所以必须创建带有GUI桌面环境的Docker镜像。
X11是一种可以免费使用的X视窗系统,为用户提供功能强大的图形用户界面。在X11 协议中,分为X11服务端和X11客户端两个部分。X11服务端是用于驱动具体显示硬件将数据进行展示的模块,而X11客户端则接收应用程序和用户的操作,并产生刷新屏幕信息的命令发送给服务端。Xvfb是X11服务端的特殊实现,全称是“X virtual frame buffer”,Xvfb不需要实际的显示装置和硬件驱动,它将渲染的图像内容保存在内存中,非常适合Docker。
Docker 镜像需要安装X11 服务端(Xvfb),X11客户端(X11vnc),VNC服务端(VNC服务端),窗口管理器。窗口管理器有非常多选择,比如gnome、kde、xfce、lxde、lxqt等等。并且使用进程管理工具(比如Supervisord),设置这些进程在容器创建后在后台运行。
使用该镜像创建Docker容器后,理论上只需要通过vnc协议就能远程Docker容器。在Web 浏览器中可以通过noVNC连接VNC服务。但是目前主要存在两个问题:1、Docker容器所在的网络一般情况下是隔离的,外部的远程客户端无法访问。2、如何提供既安全又便捷的访问。
发明内容
本发明的目的在于提供一种Web远程Docker容器桌面的方法,该方法有利于使Web安全、便捷地远程连接VNC服务端。
为实现上述目的,本发明的技术方案是:一种Web远程Docker容器桌面的方法,包括以下步骤:
1)在既能访问容器网络又能访问Web 客户端网络的主机中部署VNC 服务端代理;
2)在容器的宿主机中部署Docker后台,Docker后台为每一个容器生成一个令牌token,所述令牌有一定的超时时间,时间到后自动失效;Docker后台将容器的id、容器的token、容器的ip、容器的VNC端口port的信息通知给VNC服务端代理;
3)Web用户在Web客户端登入Docker后台,查看属于当前用户的容器列表;当用户点击访问一个容器时,Web客户端和VNC服务端代理建立Websocket连接,并把容器的id和token通过所述Websocket连接发给VNC服务端代理;VNC服务端代理获取容器的(id,token, ip, port)信息,比较id和token是否一致,如果不一致,则拒绝该用户的访问,如果一致,则通过vnc协议连接ip:port所在的VNC服务端,然后将两条连接对应起来,中转Web客户端与VNC服务端之间的报文数据。
进一步地,步骤1)中,在容器的宿主机中部署VNC 服务端代理。
进一步地,步骤2)中,Docker后台还要定时查询并更新各容器以下的状态变化:
21)当发现容器的ip发生变化时,更新对应的ip;
22)当发现容器的token即将超时时,生成新的token并更新对应的(id, token,ip, port)信息;
23)当发现容器停止时,删除对应的(id, token, ip, port)信息。
进一步地,步骤3)中,VNC服务端代理还要监听各容器以下的信息变化:
31)当发现容器的ip发生变化时,断开和旧ip的连接,并和新ip建立vnc连接,然后将新建立的vnc连接与之前Web客户端的连接对应起来,实现直接切换;
32)当发现容器的token发生变化时,说明token超时,则在通知Web客户端token超时后,立即断开Websocket连接,在Web客户端重新获取token后,再重新访问;
33)当发现容器的(id, token, ip, port)信息被删除时,立即断开和Web客户端的连接。
相较于现有技术,本发明具有以下有益效果:提供了一种Web远程Docker容器桌面的方法,该方法能够在Web与VNC服务端之间安全、便捷地建立远程连接,使Web客户端可以通过Docker容器远程访问VNC服务端,具有很强的实用性和广阔的应用前景。
附图说明
图1是本发明实施例的实现流程图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细说明。
本发明提供一种Web远程Docker容器桌面的方法,如图1所示,包括以下步骤:
1)在既能访问容器网络又能访问Web 客户端网络的主机中部署VNC 服务端代理。在本实施例中,在容器的宿主机中部署VNC 服务端代理。VNC服务端代理和容器的网络是可通的,因此它可以通过vnc协议和VNC服务端建立连接。而Web可以和VNC服务端代理建立Websocket连接。
2)在容器的宿主机中部署Docker后台,Docker后台为每一个容器生成一个令牌token,所述令牌有一定的超时时间,时间到后自动失效;Docker后台将容器的id、容器的token、容器的ip、容器的VNC端口port的信息通知给VNC服务端代理。比如可以将(id,token, ip, port)信息发布到分布式系统中,比如可以以id作为key,以(token, ip,port)作为值进行存储。在此过程中,Docker后台还要定时查询并更新各容器以下的状态变化:
21)当发现容器的ip发生变化时,更新对应的ip;
22)当发现容器的token即将超时时,生成新的token并更新对应的(id, token,ip, port)信息;
23)当发现容器停止时,删除对应的(id, token, ip, port)信息。
3)Web用户在Web客户端通过用户名密码登入Docker后台,查看属于当前用户的容器列表;当用户点击访问一个容器时,Web客户端和VNC服务端代理建立Websocket连接,并把容器的id和token通过所述Websocket连接发给VNC服务端代理;VNC服务端代理通过分布式系统获取容器的(id, token, ip, port)信息,比较id和token是否一致,如果不一致,则拒绝该用户的访问,如果一致,则通过vnc协议连接ip:port所在的VNC服务端,然后将两条连接对应起来,中转Web客户端与VNC服务端之间的报文数据。在此过程中,VNC服务端代理还要监听各容器以下的信息变化:
31)当发现容器的ip发生变化时,断开和旧ip的连接,并和新ip建立vnc连接,然后将新建立的vnc连接与之前Web客户端的连接对应起来,实现直接切换;
32)当发现容器的token发生变化时,说明token超时,则在通知Web客户端token超时后,立即断开Websocket连接,在Web客户端重新获取token后,再重新访问;
33)当发现容器的(id, token, ip, port)信息被删除时,立即断开和Web客户端的连接。
以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。

Claims (3)

1.一种Web远程Docker容器桌面的方法,其特征在于,包括以下步骤:
1)在既能访问容器网络又能访问Web 客户端网络的主机中部署VNC服务端代理;
2)在容器的宿主机中部署Docker后台,Docker后台为每一个容器生成一个令牌token,所述令牌有一定的超时时间,时间到后自动失效;Docker后台将容器的id、容器的token、容器的ip、容器的VNC端口port的信息通知给VNC服务端代理;
3)Web用户在Web客户端登入Docker后台,查看属于当前用户的容器列表;当用户点击访问一个容器时,Web客户端和VNC服务端代理建立Websocket连接,并把容器的id和token通过所述Websocket连接发给VNC服务端代理;VNC服务端代理获取容器的id, token, ip,port信息,比较id和token是否一致,如果不一致,则拒绝该用户的访问,如果一致,则通过vnc协议连接ip:port所在的VNC服务端,然后将两条连接对应起来,中转Web客户端与VNC服务端之间的报文数据;
步骤1)中,在容器的宿主机中部署VNC服务端代理。
2.根据权利要求1所述的一种Web远程Docker容器桌面的方法,其特征在于,步骤2)中,Docker后台还要定时查询并更新各容器以下的状态变化:
21)当发现容器的ip发生变化时,更新对应的ip;
22)当发现容器的token即将超时时,生成新的token并更新对应的id, token, ip,port信息;
23)当发现容器停止时,删除对应的id, token, ip, port信息。
3.根据权利要求1所述的一种Web远程Docker容器桌面的方法,其特征在于,步骤3)中,VNC服务端代理还要监听各容器以下的信息变化:
31)当发现容器的ip发生变化时,断开和旧ip的连接,并和新ip建立vnc连接,然后将新建立的vnc连接与之前Web客户端的连接对应起来,实现直接切换;
32)当发现容器的token发生变化时,说明token超时,则在通知Web客户端token超时后,立即断开Websocket连接,在Web客户端重新获取token后,再重新访问;
33)当发现容器的id, token, ip, port信息被删除时,立即断开和Web客户端的连接。
CN201910907578.8A 2019-09-24 2019-09-24 一种Web远程Docker容器桌面的方法 Active CN110493269B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910907578.8A CN110493269B (zh) 2019-09-24 2019-09-24 一种Web远程Docker容器桌面的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910907578.8A CN110493269B (zh) 2019-09-24 2019-09-24 一种Web远程Docker容器桌面的方法

Publications (2)

Publication Number Publication Date
CN110493269A CN110493269A (zh) 2019-11-22
CN110493269B true CN110493269B (zh) 2021-09-07

Family

ID=68544101

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910907578.8A Active CN110493269B (zh) 2019-09-24 2019-09-24 一种Web远程Docker容器桌面的方法

Country Status (1)

Country Link
CN (1) CN110493269B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111211934B (zh) * 2019-12-25 2022-04-12 曙光信息产业(北京)有限公司 集群远程通信测试方法以及系统
CN111510444A (zh) * 2020-04-09 2020-08-07 上海云励科技有限公司 容器的远程访问方法、系统、服务端和访问辅助组件
CN111770052B (zh) * 2020-05-21 2021-10-15 中清龙图计算机科技(上海)有限公司 一种云游戏支付方法、装置、设备及介质
CN111741091B (zh) * 2020-06-11 2022-12-20 华云数据控股集团有限公司 一种隐藏noVNC服务器IP及端口号的方法、装置及电子设备
CN111708595A (zh) * 2020-06-11 2020-09-25 湖北美和易思教育科技有限公司 一种基于可视化界面的远程交互协作方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103200215A (zh) * 2012-01-08 2013-07-10 佳都新太科技股份有限公司 一种在https上实现XenServer虚拟机远程控制的方法
CN106161104A (zh) * 2016-08-22 2016-11-23 浪潮电子信息产业股份有限公司 一种基于Docker事件自动化配置Docker容器同主机网络IP的方法
CN107124450A (zh) * 2017-04-18 2017-09-01 恒泰艾普(北京)云技术有限公司 一种基于html5的远程桌面访问系统及远程桌面访问方法
CN107395642A (zh) * 2017-08-31 2017-11-24 郑州云海信息技术有限公司 基于Websocket访问启动TLS认证的Docker容器的方法及系统
CN107493344A (zh) * 2017-08-29 2017-12-19 郑州云海信息技术有限公司 一种Web访问Docker容器的方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103200215A (zh) * 2012-01-08 2013-07-10 佳都新太科技股份有限公司 一种在https上实现XenServer虚拟机远程控制的方法
CN106161104A (zh) * 2016-08-22 2016-11-23 浪潮电子信息产业股份有限公司 一种基于Docker事件自动化配置Docker容器同主机网络IP的方法
CN107124450A (zh) * 2017-04-18 2017-09-01 恒泰艾普(北京)云技术有限公司 一种基于html5的远程桌面访问系统及远程桌面访问方法
CN107493344A (zh) * 2017-08-29 2017-12-19 郑州云海信息技术有限公司 一种Web访问Docker容器的方法及系统
CN107395642A (zh) * 2017-08-31 2017-11-24 郑州云海信息技术有限公司 基于Websocket访问启动TLS认证的Docker容器的方法及系统

Also Published As

Publication number Publication date
CN110493269A (zh) 2019-11-22

Similar Documents

Publication Publication Date Title
CN110493269B (zh) 一种Web远程Docker容器桌面的方法
US20100077085A1 (en) Systems and method for configuring display resolution in a terminal server environment
US6477576B2 (en) Methods, systems and computer program products for the automated discovery of a services menu
US6892225B1 (en) Agent system for a secure remote access system
US7089311B2 (en) Methods, systems and computer program products for resuming SNA application-client communications after loss of an IP network connection
JPH0870299A (ja) ネットワークにおけるターゲット送信方法及びメッセージターゲット生成システム
CN105681454A (zh) 一种自适应连接云桌面方法及系统
CN106648670B (zh) 云教室同屏共控系统和方法
CN107450954A (zh) 一种基于云桌面的用户云终端升级方法
WO2003100563A2 (en) Network update manager
US20030018759A1 (en) Method and system for performing computer system cloning
CN100407709C (zh) 向第三方提供即时通讯用户状态信息的方法和系统
JP2003203024A (ja) ホームネットワークに接続した被制御装置をインターネットを通じて制御する方法及びその制御装置
CN107707689A (zh) 一种dhcp报文处理方法、dhcp服务器及网关设备
WO2023138335A1 (zh) 用户终端的差异化控制方法、装置及相关设备
US20030033410A1 (en) Machine resource management system, method and program
CN112187718A (zh) 一种idv云桌面的远程访问云终端和系统
JPH096655A (ja) システム管理装置
CN111885190A (zh) 服务请求处理方法及系统
TW201005546A (en) System and method for using virtual IP addresses in a multi-user server system
KR20050112912A (ko) 소켓 어플리케이션 프로그램을 이용한 데이터 중계 시스템및 데이터 중계 방법
Cisco Using Terminals
Cisco Using Terminals
Cisco Using Terminals
Cisco Using Terminals

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