一种基于容器的私服架构及其搭建和可视化方法技术

技术编号:20362667 阅读:32 留言:0更新日期:2019-02-16 16:26
本发明专利技术提供了一种基于容器的私服架构及其搭建和可视化方法,该私服架构包括核心服务模块,核心服务模块提供用户界面和令牌服务模块;Registry模块,Registry模块用于存储Docker镜像;以及数据库模块,数据库模块存储有用户权限;其中,用户界面通过图形化界面帮助用户管理Registry模块上的Docker镜像;当用户经由用户界面从Registry模块拉取镜像或将镜像上传到Registry模块时,Registry模块指向令牌服务模块,令牌服务模块根据用户权限为所述命令签发令牌,然后Registry模块通过公钥对令牌进行解密验证以按照用户权限在用户界面上显示相应内容。基于此,本发明专利技术的架构可以有效地降低复杂度,提高扩展性,可以方便地支持系统分布式环境的应用部署及集成。

【技术实现步骤摘要】
一种基于容器的私服架构及其搭建和可视化方法
本专利技术总体上涉及计算机
,并且更具体地,涉及一种基于容器的私服架构及其搭建和可视化方法。
技术介绍
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到Linux机器上。Docker创建容器的镜像存储支持多种方式,除了开源或公共项目需要使用默认的公共仓库外,还有适合特殊定制某些东西的Docker命令实现的保存/载入方式。现有的私服仓库有两种:第一种是Docker官方提供了DockerHub网站来作为一个公开的集中仓库;第二种是本地创建并访问DockerHub的私服仓库,给了相关的registry镜像,部署起来相对简单。但是以上两种方案有如下弊端:1.第一种速度往往很慢,在需要有外网的情况下连接时,如服务器在外国,在中国访问会很慢,影响效率;2.第二种本地可以创建,但是没有提供相关的管理界面,需要使用独特的httprest的请求进行访问、修改相关配置并对镜像进行CRUD(CreateReadUpdateandDelete,创建、读取、更新和删除)操作;3.没有基于角色的访问控制(RoleBasedAccessControl,RBAC),基本上只有管理员权限或者拥有相关证书的人才能访问;4.没有审计日志(Auditlogging),无法查看谁修改了镜像仓库中的镜像及相关的日志审计;5.对于普通的人来说操作不方便,不懂技术的人可能无法操作。基于以上问题,亟需设计一种提供管理UI、基于角色的访问控制以及审计日志等需求的企业级的Dockerregistry服务,并能够针对界面进行操作,可以支持镜像的存储备份方案等。
技术实现思路
鉴于此,本专利技术实施例的目的在于提出一种基于容器的私服架构及其搭建和可视化方法,该架构可以提供管理UI、基于角色的访问控制以及审计日志等需求,并且可以针对界面进行操作,支持镜像的存储备份方案等。基于上述目的,本专利技术实施例的一方面提供了一种基于容器的私服架构,包括:核心服务模块(Coreservices),所述核心服务模块用于提供用户界面(UI)和令牌(token)服务模块;Registry模块,所述Registry模块用于存储Docker镜像;以及数据库模块(Database),所述数据库模块负责存储用户权限;其中,所述用户界面通过图形化界面帮助用户管理所述Registry模块上的所述Docker镜像并对所述用户进行授权;当所述用户经由所述用户界面从所述Registry模块拉取镜像或将镜像上传到所述Registry模块时,所述Registry模块指向所述令牌服务模块,所述令牌服务模块根据所述用户权限为所述命令签发令牌,然后所述Registry模块通过公钥对所述令牌进行解密验证以按照所述用户权限在所述用户界面上显示相应内容。在一些实施方式中,还包括:代理模块(Proxy),所述Registry模块和所述核心服务模块通过所述代理模块统一接收来自所述用户界面的用户请求并将所述请求转发给后端。在一些实施方式中,还包括:日志收集模块(Logcollector),所述日志收集模块用于收集所述私服架构中其他模块的日志。在一些实施方式中,其中所述数据库模块还存储所述日志、所述Docker镜像分组信息等数据。在一些实施方式中,所述核心服务模块还提供webhook,其中所述webhook把所述Registry模块上的所述Docker镜像的状态变化传递给所述用户界面。在一些实施方式中,所述用户界面为浏览器、Docker客户端。本专利技术实施例的另一方面提供了一种基于容器的私服搭建及可视化方法,包括以下步骤:查看本地端口是否被占用;当所述端口未被占用时,定义相关可执行文件的脚本;执行所述脚本以进行安装;以及安装完成后,访问用户界面并进行基于用户权限的访问控制设置。在一些实施方式中,所述可执行的脚本文件是入口文件,配合安装源文件进行本地私服仓库的安装。本专利技术实施例的又一方面提供了一种计算机设备,包括存储器、至少一个处理器,所述存储器存储有可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时执行上述方法。本专利技术实施例的又一方面提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算程序,所述计算程序包括指令,当所述指令被计算机执行时,使所述计算机执行上述方法。本专利技术具有以下有益技术效果:本专利技术实施例提供的基于容器的私服搭建及可视化方法主要通过一个入口的可执行yml描述性文件、配合安装源文件进行本地私服仓库的安装,由此搭建的私服仓库具有增强的功能:提供管理界面,简单操作一目了然;增加基于角色的访问控制;增加审计日志功能;增加镜像的存储方案和备份。相对于现有手段,该架构可以有效地降低复杂度,提高扩展性,可以方便地支持系统分布式环境的应用部署及集成。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是根据本专利技术实施例的私服架构的各模块关系的示意图;图2是根据本专利技术提供的执行所述基于容器的私服搭建及可视化方法的计算机设备的一个实施例的硬件结构示意图。具体实施方式以下描述了本公开的实施例。然而,应该理解,所公开的实施例仅仅是示例,并且其他实施例可以采取各种替代形式。附图不一定按比例绘制;某些功能可能被夸大或最小化以显示特定部件的细节。因此,本文公开的具体结构和功能细节不应被解释为限制性的,而仅仅是作为用于教导本领域技术人员以各种方式使用本专利技术的代表性基础。如本领域普通技术人员将理解的,参考任何一个附图所示出和描述的各种特征可以与一个或多个其他附图中所示的特征组合以产生没有明确示出或描述的实施例。所示特征的组合为典型应用提供了代表性实施例。然而,与本公开的教导相一致的特征的各种组合和修改对于某些特定应用或实施方式可能是期望的。为了便于理解,对本专利技术中出现的部分名词作一些解释说明:Docker:一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。DockerHub:为用户提供不限数目的公开镜像托管服务,它与GitHub类似,利用DockerHub,我们可以搜索、创建、分享和管理镜像,还可以利用其提供的自动化构建技术直接在集群云服务器上构建镜像。Dockerregistry:是一个存储和分享Docker镜像的服务。镜像:一种文件存储形式,将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用。webhook:是一个API概念,准确的说是一种web回调或者http的pushAPI,是向APP或者其他应用提供实时信息的一种方式。令牌(token):为了验证API请求者的身份,需要客户端向服务器端提供一个可靠的验证信息,这种信息我们称为token。为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术本文档来自技高网
...

【技术保护点】
1.一种基于容器的私服架构,其特征在于,包括:核心服务模块,所述核心服务模块提供用户界面和令牌服务模块;Registry模块,所述Registry模块用于存储Docker镜像;以及数据库模块,所述数据库模块存储有用户权限;其中,所述用户界面通过图形化界面帮助用户管理所述Registry模块上的所述Docker镜像;当所述用户经由所述用户界面从所述Registry模块拉取镜像或将镜像上传到所述Registry模块时,所述Registry模块指向所述令牌服务模块,所述令牌服务模块根据所述用户权限为所述命令签发令牌,然后所述Registry模块通过公钥对所述令牌进行解密验证以按照所述用户权限在所述用户界面上显示相应内容。

【技术特征摘要】
1.一种基于容器的私服架构,其特征在于,包括:核心服务模块,所述核心服务模块提供用户界面和令牌服务模块;Registry模块,所述Registry模块用于存储Docker镜像;以及数据库模块,所述数据库模块存储有用户权限;其中,所述用户界面通过图形化界面帮助用户管理所述Registry模块上的所述Docker镜像;当所述用户经由所述用户界面从所述Registry模块拉取镜像或将镜像上传到所述Registry模块时,所述Registry模块指向所述令牌服务模块,所述令牌服务模块根据所述用户权限为所述命令签发令牌,然后所述Registry模块通过公钥对所述令牌进行解密验证以按照所述用户权限在所述用户界面上显示相应内容。2.根据权利要求1所述的架构,其特征在于,还包括:代理模块,所述Registry模块和所述核心服务模块通过所述代理模块统一接收来自所述用户界面的用户请求并将所述请求转发给后端。3.根据权利要求1所述的架构,其特征在于,还包括:日志收集模块,所述日志收集模块用于收集所述私服架构中其他模块的日志。4.根据权利要求3所述的架构,其特征在于,其中所述数据库模块还存储所述日志...

【专利技术属性】
技术研发人员:林皓刘进辉戴相龙白志凌
申请(专利权)人:北京北信源信息安全技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1