CN110493269B - 一种Web远程Docker容器桌面的方法 - Google Patents
一种Web远程Docker容器桌面的方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network 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
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0884—Network 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
-
- 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
- H04L63/108—Network 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
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/08—Protocols specially adapted for terminal emulation, e.g. Telnet
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/046—Network management architectures or arrangements comprising network management agents or mobile agents therefor
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Human Computer Interaction (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
技术领域
本发明涉及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客户端的连接。
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)
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)
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容器的方法及*** |
-
2019
- 2019-09-24 CN CN201910907578.8A patent/CN110493269B/zh active Active
Patent Citations (5)
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服务器及网关设备 | |
CN112187718B (zh) | 一种idv云桌面的远程访问云终端和*** | |
US20030033410A1 (en) | Machine resource management system, method and program | |
JPH096655A (ja) | システム管理装置 | |
TW201005546A (en) | System and method for using virtual IP addresses in a multi-user server system | |
CN103441876A (zh) | 一种基于dhcp协议和snmp协议的网络设备管理方法及*** | |
CN116527733A (zh) | 用户终端的差异化控制方法及装置、设备及存储 | |
Cisco | Using Terminals | |
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 |