一种分布式容器镜像存储与分发系统与方法技术方案

技术编号:24251095 阅读:117 留言:0更新日期:2020-05-22 23:21
一种分布式容器镜像存储与分发系统与方法,所述系统包括分布式文件系统和分布式缓存系统,协同实现分布式Docker镜像存储与分发功能,所述分布式缓存系统,包括各个运行Docker容器的主机分出的部分内存,实现运行容器所需Docker镜像的缓存,取代了在各个主机缓存容器镜像,节省了存储成本,而且从分布式缓存系统获取Docker镜像缩短了容器启动时间。

A distributed container image storage and distribution system and method

【技术实现步骤摘要】
一种分布式容器镜像存储与分发系统与方法
本专利技术涉及计算机
,尤其涉及一种利用分布式文件系统和分布式缓存系统协同实现分布式容器镜像存储与分发功能的分布式容器镜像存储与分发系统与方法。
技术介绍
Docker容器集群以其轻量级、易迁移、便捷性等特性成为隔离、部署计算机应用的解决方案。例如,Google的所有应用程序以容器方式运行,每周运行的容器数量超过20亿。容器封装了应用程序运行的环境,容器编排实现了容器应用的自动化部署与维护,从而使得开发人员专注于软件功能,有效提高软件开发、部署效率。Docker容器体系由Docker守护进程、Docker客户端和Docker仓库3个部分组成。Docker守护进程在各个主机上,负责启动、停止容器、创建镜像以及从Docker容器推送、拉取镜像。Docker客户端提供给用户用于与Docker守护进程通信功能,用于用户向Docker守护进程发送管理Docker容器命令。Docker仓库保存Docker镜像,不同的主机从Docker仓库拉取镜像或者向其推送镜像。现有技术CN109491758A公开了一种Docker镜像分发方法,基于客户端发送的获取Docker镜像文件的请求,从P2P网络的tracker服务器中查询可用的数据共享节点,与至少一个所述可用的数据共享节点建立P2P连接,下载所述docker镜像文件,并将已下载的所述docker镜像文件发送至所述客户端,从而实现容器服务中高效率、低成本的docker镜像分发。但是该现有技术仍然需要每个主机运行容器时都要下载在本地不存在的Docker镜像。可见,现有的Docker容器集群性能依赖于Docker仓库性能,每个主机运行容器时都要从Docker仓库下载在本地不存在的Docker镜像。这种运行机制存在如下的问题:1、存储资源浪费:同一镜像因为要在不同主机上运行,每台主机都要从Docker仓库下载进行保存在本地,导致Docker集群中同一镜像存储多份,带来了存储空间浪费。2、启动性能低:主机从Docker仓库下载镜像时间成为主机启动瓶颈,导致大规模Docker集群性能依赖Docker仓库性能。
技术实现思路
本专利技术针对上述问题,利用分布式文件系统和分布式缓存系统协同实现分布式容器镜像存储与分发功能,使得容器仓库的镜像在分布式文件系统中完成持久化存储,提供并发存储和数据冗余功能,分布式缓存系统实现运行容器所需镜像的缓存,取代了在各个主机缓存容器镜像,节省了存储成本,从分布式缓存获取镜像缩短了容器启动时间。具体方案如下:一种分布式容器镜像存储与分发系统,包括Docker容器集群和Docker仓库;所述Docker容器集群包括多个运行Docker容器的Docker主机,每个所述Docker主机均运行Docker守护进程和Docker客户端;所述Docker仓库包括分布式缓存系统和分布式文件系统;每个所述Docker主机的内存划分为Docker本地内存和Docker本地缓存节点;所述分布式缓存系统由一个分布式缓存系统主节点和全部所述Docker本地缓存节点构成,所述分布式缓存系统用于存储运行Docker容器所需的镜像;所述分布式文件系统由一个主存储节点和与多个从存储节点构成。优选的,所述Docker守护进程负责启动、停止容器,创建镜像,以及从Docker容器推送、拉取镜像;所述Docker客户端向用户提供与Docker守护进程的通信功能,向Docker守护进程发送管理Docker容器命令。优选的,所述分布式缓存系统主节点,用于对所述分布式缓存系统中存储的Docker镜像进行登记,并接受查询。优选的,所述分布式文件系统主节点,用于对分布式文件系统中存储的Docker镜像进行登记,并接受查询。一种分布式容器镜像存储与分发方法,用于上述的分布式容器镜像存储与分发系统,包括如下步骤:用户使用Docker客户端向Docker守护进程发送管理Docker容器命令;Docker守护进程根据命令,创建Docker镜像、删除Docker镜像、修改Docker镜像或启动Docker容器;所述Docker守护进程创建Docker镜像完成后,Docker镜像保存到所述分布式缓存系统,并在所述分布式缓存系统主节点进行登记。优选的,所述Docker守护进程删除Docker镜像时,只修改Docker容器所在的Docker主机的镜像信息,不删除所述分布式缓存系统的实际Docker镜像优选的,所述Docker守护进程修改Docker镜像时,采用写时复制机制,把Docker镜像复制一个副本,在其上增加修改层,并采用定期策略或者不定期策略存储到所述分布式缓存系统及所述分布式文件系统。优选的,所述Docker守护进程启动Docker容器时,首先查询所述分布式缓存系统,如果存在Docker容器,将其拉取到该Docker守护进程所在Docker主机的所述Docker本地内存中进行加载启动;如果不存在,则从所述分布式文件系统中查询,并将Docker容器提取到所述分布式缓存系统中,存储在该Docker守护进程所在Docker主机分配给分布式缓存系统的对应的所述Docker本地缓存节点上,进行加载启动。优选的,采用实时、定时或者不定时策略,将所述分布式缓存系统中存储的Docker镜像持久化存储到所述分布式文件系统。本专利技术的分布式容器镜像存储与分发方法节省了存储成本,以Docker分布式缓存系统和分布式文件系统为中心,向分布式文件系统推送能够以并行存储加快镜像推送速度,从分布式缓存系统拉取镜像,将进行多副本的镜像同时传输,加快了拉取镜像速度,因此提高了拉取、推送的性能。附图说明图1是本专利技术的分布式容器镜像存储与分发系统结构图。图2是本专利技术的分布式容器镜像存储与分发方法流程示意图。具体实施方式如附图1所示,一种分布式容器镜像存储与分发系统,包括Docker容器集群和Docker仓库;所述Docker容器集群包括多个运行Docker容器的Docker主机,每个所述Docker主机均运行Docker守护进程和Docker客户端;所述Docker仓库包括分布式缓存系统和分布式文件系统;每个所述Docker主机的内存划分为Docker本地内存和Docker本地缓存节点;所述分布式缓存系统由一个分布式缓存系统主节点和全部所述Docker本地缓存节点构成,所述分布式缓存系统用于存储运行Docker容器所需的镜像;所述分布式文件系统由一个主存储节点和与多个从存储节点构成。所述分布式文件系统的主从节点可以由不运行Docker容器的存储服务器充当,用于持久化存储容器镜像。若运行Docker的服务器充当分布式文件系统的存储节点,将使其既要提供镜像服务,又要提供运行Docker容器,这样会影响Docker运行效率。所述分布式缓存系统的节点可以由运行Docker容器充当,因为Docker容器运行内存中必须有对应的Docker镜像,本文档来自技高网
...

【技术保护点】
1.一种分布式容器镜像存储与分发系统,包括Docker容器集群和Docker仓库,其特征在于:/n所述Docker容器集群包括多个运行Docker容器的Docker主机,每个所述Docker主机均运行Docker守护进程和Docker客户端;/n所述Docker仓库包括分布式缓存系统和分布式文件系统;/n每个所述Docker主机的内存划分为Docker本地内存和Docker本地缓存节点;/n所述分布式缓存系统由一个分布式缓存系统主节点和全部所述Docker本地缓存节点构成,所述分布式缓存系统用于存储运行Docker容器所需的镜像;/n所述分布式文件系统由一个主存储节点和与多个从存储节点构成。/n

【技术特征摘要】
1.一种分布式容器镜像存储与分发系统,包括Docker容器集群和Docker仓库,其特征在于:
所述Docker容器集群包括多个运行Docker容器的Docker主机,每个所述Docker主机均运行Docker守护进程和Docker客户端;
所述Docker仓库包括分布式缓存系统和分布式文件系统;
每个所述Docker主机的内存划分为Docker本地内存和Docker本地缓存节点;
所述分布式缓存系统由一个分布式缓存系统主节点和全部所述Docker本地缓存节点构成,所述分布式缓存系统用于存储运行Docker容器所需的镜像;
所述分布式文件系统由一个主存储节点和与多个从存储节点构成。


2.根据权利要求1所述的分布式容器镜像存储与分发系统,其特征在于,所述Docker守护进程负责启动、停止容器,创建镜像,以及从Docker容器推送、拉取镜像;所述Docker客户端向用户提供与Docker守护进程的通信功能,向Docker守护进程发送管理Docker容器命令。


3.根据权利要求1所述的分布式容器镜像存储与分发系统,其特征在于,所述分布式缓存系统主节点,用于对所述分布式缓存系统中存储的Docker镜像进行登记,并接受查询。


4.根据权利要求1所述的分布式容器镜像存储与分发系统,其特征在于,所述分布式文件系统主节点,用于对分布式文件系统中存储的Docker镜像进行登记,并接受查询。


5.一种分布式容器镜像存储与分发方法,用于如权利要求1-4任意一项所述的分布式容器镜像存储与分发系统,其特征在于包括如下步骤:
用户使用Docker客户端向Docker守护进程发送管理D...

【专利技术属性】
技术研发人员:王惠峰白立飞张昆张峰王子玮葛建军
申请(专利权)人:中国电子科技集团公司信息科学研究院
类型:发明
国别省市:北京;11

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

1