基于Docker部署的多用户在线编码实现系统及方法与流程

专利检索2022-05-11  17


基于docker部署的多用户在线编码实现系统及方法
技术领域
1.本发明涉及在线编码技术领域,具体地说是基于docker部署的多用户在线编码实现系统及方法。


背景技术:

2.在当前科学技术迅猛发展的情势下,人们的工作和生活都与各种各样的电子产品密不可分,以电子产品为载体的软件服务也成了科技发展的重要领域,由此程序员成了当下热门职业之一,如何更好的发展程序员这个职业,如何更好地提升程序员的工作效率,是很多互联网公司一直在探索的问题。
3.代码的集成开发环境是程序开发人员日常工作中最重要也是最常用的工具,程序员用它来完成代码的编写编译调试等工作。ide通常是需要在本地电脑上配置所需要的语言环境,然后安装对应的编程软件配置完成的,这个过程通常比较复杂,且没有标准统一的操作手册,出错率较高。因此浏览器版用户免安装的web ide应运而生,很多互联网公司开始了web ide的应用和推广,例如阿里云发布kaitian ide,腾讯云发布cloud studio,华为云发布cloudide等,他们不仅提供了在线服务,同时还提供了webide安装包,可用于自己搭建云ide。
4.基于上述分析如何实现多用户在线编码,以便于互联网企业在自己的服务器上搭建系统供内部员工使用,是需要解决的技术问题。


技术实现要素:

5.本发明的技术任务是针对以上不足,提供基于docker部署的多用户在线编码实现系统及方法,来解决如何实现多用户在线编码的问题。
6.第一方面,本发明的基于docker部署的多用户在线编码实现系统,为搭建于服务器上的webide系统,所述系统包括:
7.用户管理服务模块,所述用户管理服务模块与用户交互并提供用户管理服务,所述用户管理服务用于判断用户提交的容器访问请求是否为首次请求,对于首次请求,用于为用户创建ide容器服务并配置容器地址,用于获取用户信息将用户与容器绑定建立用户容器映射关系,并用于并发出容器创建指令;对于非首次请求,用于为用户返回容器地址;
8.docker管理服务模块,所述docker管理服务模块与服务器以及所述用户服务管理模块交互并提供容器管理服务,所述容器管理服务用于基于容器创建指令创建容器并部署ide容器服务,用于将容器创建结果返回用户服务管理模块,并用于将容器工作目录挂载服务器的磁盘上。
9.作为优选,所述用户管理服务用于基于用户提交的容器管理请求创建容器管理指令,容器管理服务用于基于容器管理指令对容器进行管理,并将容器管理结果返回用户服务管理模块;
10.所述容器管理请求包括修改容器请求、删除容器请求和创建容器请求。
11.作为优选,如果容器管理请求为创建容器,所述用户管理服务用于为用户创建ide容器服务并配置容器地址,用于获取用户信息将用户与容器绑定建立用户容器映射关系,并用于并发出容器创建指令;
12.所述容器管理服务用于基于容器创建指令创建容器并部署ide容器服务,用于将容器创建结果返回用户服务管理模块,并用于将容器工作目录挂载服务器的磁盘上。
13.作为优选,所述容器地址包括ip和端口,所述用户服务管理模块用于将ip和端口为标识绑定用户建立用户容器映射关系;
14.每个用户对应容器的端口和其它用户对应容器的端口互不冲突。
15.作为优选,还包括镜像配置模块,所述镜像配置模块用于部署web ide镜像;
16.所述docker管理服务模块用于基于容器创建指令、通过web ide镜像创建容器并部署ide容器服务。
17.第二方面,本发明的基于docker部署的多用户在线编码实现方法,包括如下步骤:
18.通过用户管理服务判断用户提交的容器访问请求是否为首次请求;
19.如果是首次请求,执行如下操作:
20.为用户创建ide容器服务并配置容器地址,获取用户信息将用户与容器绑定建立用户容器映射关系,并发出容器创建指令;
21.基于容器创建指令创建容器并部署ide容器服务,返回容器创建结果;
22.并将容器工作目录挂载服务器的磁盘上;
23.如果不是首次请求,返回对应的容器地址。
24.作为优选,所述方法还包括:
25.基于用户提交的容器管理请求创建容器管理指令;
26.基于容器管理指令对容器进行管理,并返回容器管理结果;
27.所述容器管理请求包括修改容器请求、删除容器请求和创建容器请求。
28.作为优选,如果容器管理请求为创建容器,包括如下操作:
29.为用户创建ide容器服务并配置容器地址,获取用户信息将用户与容器绑定建立用户容器映射关系,并发出容器创建指令;
30.基于容器创建指令创建容器并部署ide容器服务,返回容器创建结果;
31.将容器工作目录挂载服务器的磁盘上。
32.作为优选,所述容器地址包括ip和端口,将ip和端口为标识绑定用户建立用户容器映射关系;
33.每个用户对应容器的端口和其它用户对应容器的端口互不冲突。
34.作为优选,所述方法还包括部署web ide镜像,基于容器创建指令、通过web ide镜像创建容器并部署ide容器服务。
35.本发明的基于docker部署的多用户在线编码实现系统及方法具有以下优点:
36.1、只需要在服务器上搭建本实施例的webide系统,用户即可电脑设备限制,不需要在更换电脑时重新搭建编程环境和安装编程软件,用户之间编程环境统一且标准;
37.2、每个用户对应一个容器以及一个工作空间,有效地控制了用户的文件访问权限,用户无法越权访问不属于其权限内的文件内容,且多用户在线编程工作互不影响;
38.3、数据目录挂载使得用户的工作目录更安全,相比存储在用户本机电脑上更具安
全性和可靠性,极大地降低了代码丢失和泄露的风险,一定程度上对员工离职时的工作交接和资料保密管理起到了很大的帮助作用。
附图说明
39.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
40.下面结合附图对本发明进一步说明。
41.图1为实施例1多用户在线编码实现系统的工作原理框图;
42.图2为实施例1多用户在线编码实现系统中容器工作目录挂载在服务器磁盘上的示意图。
具体实施方式
43.下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。
44.本发明实施例提供基于docker部署的多用户在线编码实现系统及方法,用于解决如何实现多用户在线编码的技术问题。
45.实施例1:
46.本发明基于docker部署的多用户在线编码实现系统,为搭建于服务器上的webide系统,该系统包括用户管理服务模块和docker管理服务模块,用户管理服务模块与用户交互并提供用户管理服务,用户管理服务用于判断用户提交的容器访问请求是否为首次请求,对于首次请求,获取用户信息,为用户分配容器地址并发出容器创建指令,创建ide容器服务后,将用户与容器绑定建立用户容器映射关系;对于非首次请求,用于为用户返回容器地址;docker管理服务模块与服务器以及用户服务管理模块交互并提供容器管理服务,容器管理服务用于基于容器创建指令创建容器并部署ide容器服务,用于将容器创建结果返回用户服务管理模块,并用于将容器工作目录挂载服务器的磁盘上。
47.用户管理服务用于基于用户提交的容器管理请求创建容器管理指令,容器管理服务用于基于容器管理指令对容器进行管理,并将容器管理结果返回用户服务管理模块;容器管理请求包括修改容器请求、删除容器请求和创建容器请求。
48.如果容器管理请求为创建容器,用户管理服务用于为用户创建ide容器服务并配置容器地址,用于获取用户信息将用户与容器绑定建立用户容器映射关系,并用于并发出容器创建指令;对应的,容器管理服务用于基于容器创建指令创建容器并部署ide容器服务,用于将容器创建结果返回用户服务管理模块,并用于将容器工作目录挂载服务器的磁盘上。
49.容器地址包括ip和端口,所述用户服务管理模块用于将ip和端口为标识绑定用户建立用户容器映射关系;每个用户对应容器的端口和其它用户对应容器的端口互不冲突。
50.本实施例中,每个用户对应着一个容器的使用权,用户管理服务用来管理系统用
户以及用户与容器的对应关系。用户请求在线ide地址时,需要先判断用户是不是首次请求,如果用户是首次请求,意味着系统未曾创建过属于该用户的容器,系统需要为这个新用户新创建一个ide容器服务,并记录容器的ip和端口,以ip和端口为标识绑定该用户和新容器的使用关系,这个容器的使用权有且只能对应它自己的用户,其他人无权使用该容器。用户管理服务通过一定的端口分配方法为用户指定一个不与其他用户冲突的容器端口,然后发送容器创建指令给容器管理服务,容器管理服务成功自行指令后返回结果。成功创建容器后,用户管理服务可通过数据库等持久化方法记录用户与容器的对应关系,用户后续请求时,不需要向容器管理服务发送指令即可将用户的专属ide地址返回给用户。
51.当用户有创建或修改或关闭容器的需求时,需求由用户管理服务发送至容器管理服务,容器服务直接管理服务器上的镜像池以及docker资源池,收到容器的增加修改删除指令后,容器管理服务,根据指令进行容器的管理,并将管理结果反馈给用户管理服务。容器管理服务所承担的功能与docker镜像及docker容器直接相关,包括管理docker镜像,创建容器时,选择对应的docker镜像使用上层服务分配的ip和端口按照一定规则创建用户的ide容器。
52.为了达到用户工作空间和权限独立的效果,创建用户的ide容器时,要根据用户id挂载容器内的工作空间,确保用户在容器内的真正文件操作都是实际作用于容器外的服务器磁盘上的,这样容器的工作目录不会随着容器的关闭而丢失,此处也可使用云存储达到相应的效果。如图2所示,是将容器工作目录挂载服务器磁盘上的一种实现。
53.本系统还包括镜像配置模块,镜像配置模块用于部署web ide镜像;docker管理服务模块用于基于容器创建指令、通过web ide镜像创建容器并部署ide容器服务。
54.web ide基础镜像可以采用自己搭建的方式,也可从docker官网获取相关ide镜像的下载方式,官网提供的镜像一般是最原始的状态,只有一个ide的安装包,我们需要在这个基础镜像的基础上,根据业务需要完善镜像,比如在镜像内搭建编程需要的语言环境等,每进行一次完善,将其更新为部署的标准镜像,从而实现用户编程环境的标准性和一致性。当然,当用户获得一个容器的使用权时,也可以个性化调整自己的web ide,使之更符合自己的使用习惯和要求。也可建立多个不同标准的镜像,根据用户需要提供不同版本的ide容器服务,这可以满足更多样化的用户需求。
55.本实施例的实现系统,使用一个用户对应一个容器的逻辑,在容器内为用户部署webide服务,提供在线编码功能;可通过docker容器管理,弃用时销毁,启用时启动,自由控制用户数量;多名用户在线编码地址和工作空间一一对应,权限独立,互不影响,将用户的对服务器的数据访问权限控制在合理范围内。每个用户容器的工作空间通过磁盘挂载技术挂载到服务器磁盘上,不受容器关闭影响,数据存储更加安全可靠。
56.实施例2:
57.本发明基于docker部署的多用户在线编码实现方法,包括如下步骤:
58.(1)通过用户管理服务判断用户提交的容器访问请求是否为首次请求;
59.(2)如果是首次请求,执行如下操作:
60.(2-1)为用户创建ide容器服务并配置容器地址,获取用户信息将用户与容器绑定建立用户容器映射关系,并发出容器创建指令;
61.(2-2)基于容器创建指令创建容器并部署ide容器服务,返回容器创建结果;
62.(2-3)并将容器工作目录挂载服务器的磁盘上;
63.(3)如果不是首次请求,返回对应的容器地址。
64.该方法还包括如下步骤:
65.(4)基于用户提交的容器管理请求创建容器管理指令;
66.(5)基于容器管理指令对容器进行管理,并返回容器管理结果.
67.其中,容器管理请求包括修改容器请求、删除容器请求和创建容器请求。
68.如果容器管理请求为创建容器,包括如下操作:
69.(1)为用户创建ide容器服务并配置容器地址,获取用户信息将用户与容器绑定建立用户容器映射关系,并发出容器创建指令;
70.(2)基于容器创建指令创建容器并部署ide容器服务,返回容器创建结果;
71.(3)将容器工作目录挂载服务器的磁盘上。
72.容器地址包括ip和端口,将ip和端口为标识绑定用户建立用户容器映射关系;每个用户对应容器的端口和其它用户对应容器的端口互不冲突。
73.本实施例中,预先部署web ide镜像,然后基于容器创建指令、通过web ide镜像创建容器并部署ide容器服务。
74.本实施例方法可通过实施例1公开的实现系统实现。
75.上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
转载请注明原文地址:https://win.8miu.com/read-1057933.html

最新回复(0)