CN109783191A - 容器镜像的管理、使用及构建方法、装置 - Google Patents
容器镜像的管理、使用及构建方法、装置 Download PDFInfo
- Publication number
- CN109783191A CN109783191A CN201811547534.0A CN201811547534A CN109783191A CN 109783191 A CN109783191 A CN 109783191A CN 201811547534 A CN201811547534 A CN 201811547534A CN 109783191 A CN109783191 A CN 109783191A
- Authority
- CN
- China
- Prior art keywords
- mirror image
- container mirror
- instruction set
- instruction
- container
- 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.)
- Granted
Links
Landscapes
- Facsimiles In General (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了容器镜像的管理、使用及构建方法、装置,其中该管理方法包括:获取容器镜像的标识;根据容器镜像的标识获取从预定初始容器镜像至容器镜像所执行的历史操作指令对应的第一指令集合;当接收到容器镜像的获取请求时,反馈预定初始容器镜像和第一指令集合。通过本发明,容器镜像只在初始容器镜像的基础上根据情况叠加一层或几层并写入第一指令集合中的指令便可以得到,而不会随着历史操作次数的增多导致在初始容器镜像的基础上所叠加的层数越来越多,因此,能够使得容器镜像的结构较为精简,减小容器镜像大小。
Description
技术领域
本发明涉及虚拟化技术领域,具体涉及容器镜像的管理、使用及构建方法、装置。
背景技术
容器技术是一种虚拟化技术,与hypervisor一样,其可以实现应用层基于硬件层的虚拟化,使用户关注与开发应用程序本身。然而,hypervisor环境来说,运行于其上的虚拟机都需要运行一个完整的操作系统以及其中安装好的大量应用程序。与其不同的是,采用容器便不用安装一套操作系统和依赖环境,容器极其轻量,只打包了Bin\Lib文件。容器(Container)可以从一个平台(例如CentOS 7.2环境)较容易地应用于另一个平台(Ubuntu17.04环境),开发好的应用程序可以封装在一个容器中,从而借助容器可以较容易地将开发好的应用程序移植到不同的平台使用。
容器本身是一个基于内核的技术,用于封装应用程序的容器是容器镜像(Image)的实例化结果,容器技术提供了镜像仓库(Repository)用于存储并管理容器镜像,用户可以从镜像仓库取容器镜像来使用,如图1A所示。常规镜像是在内核的基础上生成一个最原始的镜像,然后再叠加很多层,容器镜像的分层结构如图1B所示,容器镜像中的各层都是只读的,也即这些层中的文件都是不允许修改的。如果相对容器镜像的功能进行修改就只能在原容器镜像的基础上叠加层,这些层是可读且可写(即可以修改的)的。由此可见,若想将容器镜像实例化为具体的容器从而实现特定的功能,就只能在容器镜像的基础上叠加层,通过修改叠加层来将容器镜像的功能实例化(例如将应用程序写在叠加层),如图1C所示。容器技术还提供了一种基于容器的镜像创建方式,即将实例化的容器作为容器镜像提交(即容器的Commit操作)到镜像仓库,从而下次可以直接从镜像仓库取来使用。
现有基于容器创建容器镜像的方法,往往是将容器镜像A的基础上叠加第一层、将其实例化为容器a1之后,在该第一层内写入程序以执行操作,这些操作例如软件安装、包安装、更改配置、程序运行等,其中部分操作会使容器a1的内环境发生变化。在这些操作结束之后,为了在下次使用时能够保留此次操作之后形成的容器环境,用户可以将容器a1作为镜像全量提交到镜像仓库。
然而,发明人发现,现有基于容器创建容器镜像的方法具有如下缺陷:基于容器镜像A,执行N次操作及提交之后,在容器镜像A的基础上所叠加的层数往往不少于N层,所叠加的层数较多;且随着历史操作次数的增多,叠加的层数会越来越多,造成最终创建形成的容器镜像的环境结构冗余且镜像文件很大。
发明内容
本发明实施例提供了容器镜像的管理、使用及构建方法、装置,以解决现有技术中容器镜像的环境结构冗余的问题。
根据第一方面,本发明实施例提供了一种容器镜像的管理方法,包括:获取容器镜像的标识;根据所述容器镜像的标识获取从预定初始容器镜像至所述容器镜像所执行的历史操作指令对应的第一指令集合;当接收到所述容器镜像的获取请求时,反馈所述预定初始容器镜像和所述第一指令集合。
可选地,所述反馈所述预定初始容器镜像和所述第一指令集合的步骤之前,还包括:将所述第一指令集合中对所述预定初始容器镜像具有相反操作意图的指令合并或删除,得到所述历史操作指令对应的第二指令集合;对应地,所述当接收到所述容器镜像的获取请求时,反馈所述预定初始容器镜像和所述第一指令集合的步骤,包括:当接收到所述容器镜像的获取请求时,反馈所述预定初始容器镜像和所述第二指令集合。
可选地,所述第一指令集合为涉及容器镜像环境改变的操作指令。
可选地,所述方法还包括:获取所述预定初始容器镜像;获取待优化容器镜像所对应的所述第一指令集合;在所述预定初始容器镜像的基础上叠加层并写入所述第一指令集合中的指令,得到优化后的容器镜像。
可选地,所述方法还包括:获取所述预定初始容器镜像;获取待优化容器镜像所对应的所述第二指令集合;在所述预定初始容器镜像的基础上叠加层并写入所述第二指令集合中的指令,得到优化后的容器镜像。
根据第二方面,本发明实施例提供了一种容器镜像的使用方法,包括:发送所需容器镜像的获取请求;容器镜像管理平台根据所述获取请求会反馈预定初始容器镜像和从所述预定初始容器镜像至所述所需容器镜像的预定指令集合;在所述预定初始容器镜像的基础上叠加层并写入所述预定指令集合中的指令,得到所需容器镜像;在所需容器镜像的基础上写入相关操作指令得到所需容器。
根据第三方面,本发明实施例提供了一种容器镜像的构建方法,包括:获取第一容器镜像,并获取从预定初始容器镜像至所述第一容器镜像所执行的历史操作指令对应的第三指令集合;在所述第一容器镜像的基础上叠加层并写入相关操作指令得到第二容器;将所述相关操作指令并入所述第三指令集合,形成第四指令集合;将第二容器镜像的标识和所述第四指令集合提交至容器镜像管理平台。
可选地,所述将第二容器镜像的标识和所述第四指令集合提交至容器镜像管理平台的步骤之前,包括:将所述第四指令集合中对所述预定初始容器镜像具有相反操作意图的指令合并或删除,得到所述历史操作指令对应的第五指令集合;对应地,所述将第二容器镜像的标识和所述第四指令集合提交至容器镜像管理平台的步骤包括:将第二容器镜像的标识和所述第五指令集合提交至容器镜像管理平台。
可选地,所述将所述相关操作指令并入所述第三指令集合,形成第四指令集合的步骤之前,包括:将所述第三指令集合中、对容器镜像具有相反操作意图的指令进行合并或删除;和/或,将所述相关指令中对容器镜像具有相反操作意图的指令进行合并或删除。
可选地,所述获取第一容器镜像的步骤包括:发送第一容器镜像的获取请求;容器镜像管理平台根据所述获取请求会反馈预定初始容器镜像和从所述预定初始容器镜像至所述第一容器镜像的预定指令集合;在所述预定初始容器镜像的基础上叠加层并写入所述预定指令集合中的指令,得到第一容器镜像。
根据第四方面,本发明实施例提供了一种容器镜像的管理装置,包括:第一获取单元,用于获取容器镜像的标识;第二获取单元,用于根据所述容器镜像的标识获取从预定初始容器镜像至所述容器镜像所执行的历史操作指令对应的第一指令集合;反馈单元,用于当接收到所述容器镜像的获取请求时,反馈所述预定初始容器镜像和所述第一指令集合。
可选地,所述装置还包括:第一合并或删除单元,用于将所述第一指令集合中对所述预定初始容器镜像具有相反操作意图的指令合并或删除,得到所述历史操作指令对应的第二指令集合;对应地,所述反馈单元用于当接收到所述容器镜像的获取请求时,反馈所述预定初始容器镜像和所述第二指令集合。
可选地,所述第一指令集合为涉及容器镜像环境改变的操作指令。
可选地,所述装置还包括:第三获取单元,用于获取所述预定初始容器镜像;第四获取单元,用于获取待优化容器镜像所对应的所述第一指令集合;第一写入单元,用于在所述预定初始容器镜像的基础上叠加层并写入所述第一指令集合中的指令,得到优化后的容器镜像。
可选地,所述装置还包括:第五获取单元,用于获取所述预定初始容器镜像;第六获取单元,用于获取待优化容器镜像所对应的所述第二指令集合;第二写入单元,用于在所述预定初始容器镜像的基础上叠加层并写入所述第二指令集合中的指令,得到优化后的容器镜像。
根据第五方面,本发明实施例提供了一种容器镜像的使用装置,包括:第一发送单元,用于发送所需容器镜像的获取请求;容器镜像管理平台根据所述获取请求会反馈预定初始容器镜像和从所述预定初始容器镜像至所述所需容器镜像的预定指令集合;第三写入单元,用于在所述预定初始容器镜像的基础上叠加层并写入所述预定指令集合中的指令,得到所需容器镜像;第四写入单元,用于在所需容器镜像的基础上写入相关操作指令得到所需容器。
根据第六方面,本发明实施例提供了一种容器镜像的构建装置,包括:第七获取单元,用于获取第一容器镜像,并获取从预定初始容器镜像至所述第一容器镜像所执行的历史操作指令对应的第三指令集合;第五写入单元,用于在所述第一容器镜像的基础上叠加层并写入相关操作指令得到第二容器;并入单元,用于将所述相关操作指令并入所述第三指令集合,形成第四指令集合;提交单元,用于将第二容器镜像的标识和所述第四指令集合提交至容器镜像管理平台。
可选地,所述装置还包括:第二合并或删除单元,用于将所述第四指令集合中对所述预定初始容器镜像具有相反操作意图的指令合并或删除,得到所述历史操作指令对应的第五指令集合;对应地,所述提交单元用于将第二容器镜像的标识和所述第五指令集合提交至容器镜像管理平台。
可选地,所述装置还包括:第三合并或删除单元,用于将所述第三指令集合中、对容器镜像具有相反操作意图的指令进行合并或删除;和/或,第四合并或删除单元,用于将所述相关指令中对容器镜像具有相反操作意图的指令进行合并或删除。
可选地,所述第七获取单元包括:发送子单元,用于发送第一容器镜像的获取请求;容器镜像管理平台根据所述获取请求会反馈预定初始容器镜像和从所述预定初始容器镜像至所述第一容器镜像的预定指令集合;写入子单元,用于在所述预定初始容器镜像的基础上叠加层并写入所述预定指令集合中的指令,得到第一容器镜像。
根据第七方面,本发明实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面、第二方面或第三方面,或者其任意一种可选实施方式所述的方法。
根据第八方面,本发明实施例提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行第一方面、第二方面或第三方面,或者其任意一种可选实施方式所述的方法。
本发明实施例所提供的容器镜像的管理、使用及构建方法、装置,容器镜像只在初始容器镜像的基础上根据情况叠加一层或几层并写入第一指令集合中的指令便可以得到,而不会随着历史操作次数的增多导致在初始容器镜像的基础上所叠加的层数越来越多,因此,能够使得容器镜像的结构较为精简,减小容器镜像大小。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A示出了容器、容器镜像、容器仓库的关系示意图;
图1B示出了容器镜像的分层结构示意图;
图1C示出了容器的分层结构示意图;
图2示出了根据本发明实施例的一种容器镜像的管理方法的流程图;
图3示出了根据本发明实施例的一种容器镜像的管理方法的流程图;
图4示出了根据本发明实施例的一种容器镜像的使用方法的流程图;
图5示出了根据本发明实施例的一种容器镜像的构建方法的流程图;
图6示出了根据本发明实施例的一种容器镜像的构建方法的流程图
图7示出了根据本发明实施例的一种容器镜像的管理装置的原理框图;
图8示出了根据本发明实施例的另一种容器镜像的管理装置的原理框图:
图9示出了根据本发明实施例的一种容器镜像的使用装置的原理框图;
图10示出了根据本发明实施例的一种容器镜像的构建装置的原理框图;
图11示出了根据本发明实施例的另一种容器镜像的构建装置的原理框图;
图12示出了根据本发明实施例的一种电子设备的结构示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
实施例一
图2示出了根据本发明实施例的一种容器镜像的管理方法的流程图。该方法可以用于容器镜像管理平台,容器镜像管理平台上可以部署镜像仓库,例如图1A中所示的远程镜像服务器。如图2所示,该方法包括如下步骤:
S101:获取容器镜像的标识。
通常一个容器镜像必然会有一个标识,获取容器镜像时,必然会获取到容器镜像的标识;也可以只获取容器镜像的标识,而不获取容器镜像。
S102:根据该容器镜像的标识获取从预定初始容器镜像至该容器镜像所执行的历史操作指令对应的第一指令集合。
S103:当接收到该容器镜像的获取请求时,反馈预定初始容器镜像和第一指令集合。
由于第一指令集合对应从预定初始容器镜像至该容器镜像所执行的历史操作指令,因此,在初始容器镜像的基础上叠加层并写入第一指令集合中的指令便可以得到该容器镜像。由此可见,通过上述方法,容器镜像只在初始容器镜像的基础上根据情况叠加一层或几层并写入第一指令集合中的指令便可以得到,而不会随着历史操作次数的增多导致在初始容器镜像的基础上所叠加的层数越来越多,因此,本发明实施例所提供的容器镜像的管理方法使得容器镜像的结构较为精简,减小容器镜像大小。
作为本实施例的一种可选实施方式,该容器镜像的管理方法还包括对容器镜像进行优化的过程,从而用户可以从容器镜像管理平台直接获取优化后的容器镜像,而无需自己根据初始容器镜像来生成所需容器镜像。该优化过程具体可以先获取预定初始容器镜像,获取待优化容器镜像所对应的第一指令集合,然后在预定初始容器镜像的基础上叠加层并写入第一指令集合中的指令,得到优化后的容器镜像。
可选地,第一指令集合为涉及容器镜像环境改变的操作指令,以减少指令数量。
实施例二
图3示出了根据本发明实施例的一种容器镜像的管理方法的流程图。该方法可以用于容器镜像管理平台,容器镜像管理平台上可以部署镜像仓库,例如图1A中所示的远程镜像服务器。如图3所示,该方法包括如下步骤:
S201:获取容器镜像的标识。
S202:根据该容器镜像的标识获取从预定初始容器镜像至该容器镜像所执行的历史操作指令对应的第一指令集合。
上述步骤201和202可以分别具体请参见步骤S101和S102,在此不再赘述。
S203:将第一指令集合中对预定初始容器镜像具有相反操作意图的指令合并或删除,得到历史操作指令对应的第二指令集合。
例如,在第一指令集合中有如下指令:第一指令,对初始容器镜像有A、+B操作意图;第二指令,对初始容器镜像有C、-B操作意图,则第一指令和第二指令可以合并,得到对初始容器镜像有A、C操作意图的第三指令。再例如,第一指令对初始容器镜像仅有+B操作意图,第二指令对初始容器镜像仅有-B操作意图,则第一指令和第二指令可以删除。
S204:当接收到该容器镜像的获取请求时,反馈预定初始容器镜像和第二指令集合。
由于第一指令集合对应从预定初始容器镜像至该容器镜像所执行的历史操作指令,而第二指令集合仅仅是第一指令集合精简后的结果,因此,在初始容器镜像的基础上叠加层并写入第二指令集合中的指令也可以得到该容器镜像。
作为本实施例的一种可选实施方式,该容器镜像的管理方法还包括对容器镜像进行优化的过程,从而用户可以从容器镜像管理平台直接获取优化后的容器镜像,而无需自己根据初始容器镜像来生成所需容器镜像。该优化过程具体可以先获取预定初始容器镜像,获取待优化容器镜像所对应的第二指令集合,然后在预定初始容器镜像的基础上叠加层并写入第二指令集合中的指令,得到优化后的容器镜像。
可选地,第一指令集合为涉及容器镜像环境改变的操作指令,以减少指令数量。
实施例三
图4示出了根据本发明实施例的一种容器镜像的使用方法的流程图。该方法可以用于用户,例如图1A中所示的本地用户。如图4所示,该方法包括如下步骤:
S301:发送所需容器镜像的获取请求;容器镜像管理平台根据获取请求会反馈预定初始容器镜像和从预定初始容器镜像至所需容器镜像的预定指令集合。
容器镜像管理平台上可以部署镜像仓库,例如图1A中所示的远程镜像服务器。当用户需要用到一个容器镜像时,用户向容器镜像管理平台发送所需容器镜像的获取请求,容器镜像管理平台根据获取请求会反馈预定初始容器镜像和从预定初始容器镜像至所需容器镜像的预定指令集合,从而,用户在所获取到的初始容器镜像叠加层并写入预定指令集合中的指令便可以得到所需容器镜像。
S302:在预定初始容器镜像的基础上叠加层并写入预定指令集合中的指令,得到所需容器镜像。
S303:在所需容器镜像的基础上写入相关操作指令得到所需容器。
用户得到所需容器镜像之后,便可以在该容器镜像的基础上再叠加层并写入相关操作指令,得到所需容器。
上述步骤提供了用户端用户获取并使用容器镜像的方法,通过该方法,用户能够获得结构较为精简的容器镜像。具体可以参考实施例一。
实施例四
图5示出了根据本发明实施例的一种容器镜像的构建方法的流程图。如图5所示,该方法包括如下步骤:
S401:获取第一容器镜像,并获取从预定初始容器镜像至第一容器镜像所执行的历史操作指令对应的第三指令集合。
获取第一容器镜像的方法,可以是直接从容器镜像管理平台获取第一容器镜像;也可以是发送第一容器镜像的获取请求,容器镜像管理平台根据获取请求会反馈预定初始容器镜像和从预定初始容器镜像至第一容器镜像的第三指令集合;然后在预定初始容器镜像的基础上叠加层并写入第三指令集合中的指令,得到第一容器镜像。
S402:在第一容器镜像的基础上叠加层并写入相关操作指令得到第二容器。
S403:将相关操作指令并入第三指令集合,形成第四指令集合。
S404:将第二容器镜像的标识和第四指令集合提交至容器镜像管理平台。
步骤S404中“将第二容器镜像的标识提交至容器镜像管理平台”可以将第二容器作为第二容器镜像,当然该第二容器镜像是包括第二容器镜像的标识的;或者,也可以仅提交第二容器镜像的标识。可选地,当容器镜像管理平台不知道预定初始容器镜像时,还可以将预定初始容器镜像一并提交。
需要补充说明的是,本实施例中的容器镜像管理平台,可以如图1A所示的设置于远端镜像服务器,也可以是设置于本地的。
上述容器镜像的构建方法,提供了用户端构建容器镜像的方法,该方法只在预定初始容器镜像的基础上根据情况叠加一层或几层并写入第一指令集合中的指令便可以得到容器镜像,而不会随着历史操作次数的增多导致在预定初始容器镜像的基础上所叠加的层数越来越多体积越来越大,因此,本发明实施例所提供的容器镜像的构建方法使得容器镜像的结构较为精简,且镜像文件较小。
实施例五
图6示出了根据本发明实施例的一种容器镜像的构建方法的流程图。如图6所示,该方法包括如下步骤:
S501:获取第一容器镜像,并获取从预定初始容器镜像至第一容器镜像所执行的历史操作指令对应的第三指令集合。
该步骤具体请参见步骤S401,在此不再赘述。
S502:将第三指令集合中、对容器镜像具有相反操作意图的指令进行合并或删除。
S503:在第一容器镜像的基础上叠加层并写入相关操作指令得到第二容器。
S504:将相关指令中对容器镜像具有相反操作意图的指令进行合并或删除。
S505:将相关操作指令并入第三指令集合,形成第四指令集合。
S506:将第四指令集合中对预定初始容器镜像具有相反操作意图的指令合并或删除,得到历史操作指令对应的第五指令集合。
S507:将第二容器镜像的标识和第五指令集合提交至容器镜像管理平台。
该步骤类似步骤S404,在此不再赘述。
上述步骤S502、S504和S506,具体请参见步骤S203,在此不再赘述。
上述容器镜像的构建方法,通过步骤S502、S504和S506,能够精简指令集合中的指令,去除多余指令,从而减少指令所占用的存储资源,且便于管理。
上述容器镜像的构建方法,还使得容器镜像的结构较为精简。具体请参见实施例四。
实施例六
图7示出了根据本发明实施例的一种容器镜像的管理装置的原理框图。该装置可以用于实现实施例一、实施例二或者其任意可选实施方式所述的方法。如图7所示,该装置包括第一获取单元10、第二获取单元20和反馈单元30。
第一获取单元10用于获取容器镜像的标识。第二获取单元20用于根据容器镜像的标识获取从预定初始容器镜像至容器镜像所执行的历史操作指令对应的第一指令集合。反馈单元30用于当接收到容器镜像的获取请求时,反馈预定初始容器镜像和第一指令集合。
可选地,如图8所示,该装置还包括第一合并或删除单元40,用于将第一指令集合中对预定初始容器镜像具有相反操作意图的指令合并或删除,得到历史操作指令对应的第二指令集合。对应地,反馈单元用于当接收到容器镜像的获取请求时,反馈预定初始容器镜像和第二指令集合。
可选地,第一指令集合为涉及容器镜像环境改变的操作指令。
可选地,如图8所示,该装置还包括第三获取单元50、第四获取单元60和第一写入单元70。
第三获取单元50用于获取预定初始容器镜像。第四获取单元60用于获取待优化容器镜像所对应的第一指令集合。第一写入单元70用于在预定初始容器镜像的基础上叠加层并写入第一指令集合中的指令,得到优化后的容器镜像。
可选地,如图8所示,该装置还包括第五获取单元80、第六获取单元90和第二写入单元100。
第五获取单元80用于获取预定初始容器镜像。第六获取单元90用于获取待优化容器镜像所对应的第二指令集合。第二写入单元100用于在预定初始容器镜像的基础上叠加层并写入第二指令集合中的指令,得到优化后的容器镜像。
实施例七
图9示出了根据本发明实施例的一种容器镜像的使用装置的原理框图。该装置可以用于实现实施例三所述的方法。如图9所示,该装置包括第一发送单元110、第三写入单元120和第四写入单元130。
第一发送单元110用于发送所需容器镜像的获取请求;容器镜像管理平台根据获取请求会反馈预定初始容器镜像和从预定初始容器镜像至所需容器镜像的预定指令集合。第三写入单元120用于在预定初始容器镜像的基础上叠加层并写入预定指令集合中的指令,得到所需容器镜像。第四写入单元130用于在所需容器镜像的基础上写入相关操作指令得到所需容器。
实施例八
图10示出了根据本发明实施例的一种容器镜像的构建装置的原理框图。该装置可以用于实现实施例四、实施例五或者其任意可选实施方式所述的方法。如图10所示,该装置包括第七获取单元140、第五写入单元150、并入单元160和提交单元170。
第七获取单元140用于获取第一容器镜像,并获取从预定初始容器镜像至第一容器镜像所执行的历史操作指令对应的第三指令集合。第五写入单元150用于在第一容器镜像的基础上叠加层并写入相关操作指令得到第二容器。并入单元160用于将相关操作指令并入第三指令集合,形成第四指令集合。提交单元170用于将第二容器镜像的标识和第四指令集合提交至容器镜像管理平台。
可选地,如图11所示,该装置还包括第二合并或删除单元180,用于将第四指令集合中对预定初始容器镜像具有相反操作意图的指令合并或删除,得到历史操作指令对应的第五指令集合。对应地,提交单元170用于将第二容器镜像的标识和第五指令集合提交至容器镜像管理平台。
可选地,如图11所示,该装置还包括第三合并或删除单元190和/或第四合并或删除单元200。
第三合并或删除单元190用于将第三指令集合中、对容器镜像具有相反操作意图的指令进行合并或删除。第四合并或删除单元200用于将相关指令中对容器镜像具有相反操作意图的指令进行合并或删除。
可选地,如图11所示,该装置第七获取单元140包括发送子单元141和写入子单元142。
发送子单元141用于发送第一容器镜像的获取请求;容器镜像管理平台根据获取请求会反馈预定初始容器镜像和从预定初始容器镜像至第一容器镜像的预定指令集合。写入子单元142用于在预定初始容器镜像的基础上叠加层并写入预定指令集合中的指令,得到第一容器镜像。
本发明实施例还提供了一种电子设备,如图12所示,该电子设备可以包括处理器1201和存储器1202,其中处理器1201和存储器1202可以通过总线或者其他方式连接,图12中以通过总线连接为例。
处理器1201可以为中央处理器(Central Processing Unit,CPU)。处理器1201还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器1202作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的容器镜像的管理、使用或构建方法所对应的程序指令/模块(例如,图7所示的第一获取单元10、第二获取单元20和反馈单元30)。处理器1201通过运行存储在存储器1202中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的容器镜像的管理、使用或构建方法。
存储器1202可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器1201所创建的数据等。此外,存储器1202可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器1202可选包括相对于处理器1201远程设置的存储器,这些远程存储器可以通过网络连接至处理器1201。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器1202中,当被所述处理器1201执行时,执行上述实施例中的容器镜像的管理、使用或构建。
上述电子设备具体细节可以对应参阅实施例一至实施例五所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random AccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (22)
1.一种容器镜像的管理方法,其特征在于,包括:
获取容器镜像的标识;
根据所述容器镜像的标识获取从预定初始容器镜像至所述容器镜像所执行的历史操作指令对应的第一指令集合;
当接收到所述容器镜像的获取请求时,反馈所述预定初始容器镜像和所述第一指令集合。
2.根据权利要求1所述的容器镜像的管理方法,其特征在于,所述反馈所述预定初始容器镜像和所述第一指令集合的步骤之前,还包括:
将所述第一指令集合中对所述预定初始容器镜像具有相反操作意图的指令合并或删除,得到所述历史操作指令对应的第二指令集合;
对应地,所述当接收到所述容器镜像的获取请求时,反馈所述预定初始容器镜像和所述第一指令集合的步骤,包括:
当接收到所述容器镜像的获取请求时,反馈所述预定初始容器镜像和所述第二指令集合。
3.根据权利要求1或2所述的容器镜像的管理方法,其特征在于,所述第一指令集合为涉及容器镜像环境改变的操作指令。
4.根据权利要求1所述的容器镜像的管理方法,其特征在于,还包括:
获取所述预定初始容器镜像;
获取待优化容器镜像所对应的所述第一指令集合;
在所述预定初始容器镜像的基础上叠加层并写入所述第一指令集合中的指令,得到优化后的容器镜像。
5.根据权利要求2所述的容器镜像的管理方法,其特征在于,还包括:
获取所述预定初始容器镜像;
获取待优化容器镜像所对应的所述第二指令集合;
在所述预定初始容器镜像的基础上叠加层并写入所述第二指令集合中的指令,得到优化后的容器镜像。
6.一种容器镜像的使用方法,其特征在于,包括:
发送所需容器镜像的获取请求;容器镜像管理平台根据所述获取请求会反馈预定初始容器镜像和从所述预定初始容器镜像至所述所需容器镜像的预定指令集合;
在所述预定初始容器镜像的基础上叠加层并写入所述预定指令集合中的指令,得到所需容器镜像;
在所需容器镜像的基础上写入相关操作指令得到所需容器。
7.一种容器镜像的构建方法,其特征在于,包括:
获取第一容器镜像,并获取从预定初始容器镜像至所述第一容器镜像所执行的历史操作指令对应的第三指令集合;
在所述第一容器镜像的基础上叠加层并写入相关操作指令得到第二容器;
将所述相关操作指令并入所述第三指令集合,形成第四指令集合;
将第二容器镜像的标识和所述第四指令集合提交至容器镜像管理平台。
8.根据权利要求7所述的容器镜像的构建方法,其特征在于,所述将第二容器镜像的标识和所述第四指令集合提交至容器镜像管理平台的步骤之前,包括:
将所述第四指令集合中对所述预定初始容器镜像具有相反操作意图的指令合并或删除,得到所述历史操作指令对应的第五指令集合;
对应地,所述将第二容器镜像的标识和所述第四指令集合提交至容器镜像管理平台的步骤包括:
将第二容器镜像的标识和所述第五指令集合提交至容器镜像管理平台。
9.根据权利要求7或8所述的容器镜像的构建方法,其特征在于,所述将所述相关操作指令并入所述第三指令集合,形成第四指令集合的步骤之前,包括:
将所述第三指令集合中、对容器镜像具有相反操作意图的指令进行合并或删除;和/或,
将所述相关指令中对容器镜像具有相反操作意图的指令进行合并或删除。
10.根据权利要求7所述的容器镜像的构建方法,其特征在于,所述获取第一容器镜像的步骤包括:
发送第一容器镜像的获取请求;容器镜像管理平台根据所述获取请求会反馈预定初始容器镜像和从所述预定初始容器镜像至所述第一容器镜像的预定指令集合;
在所述预定初始容器镜像的基础上叠加层并写入所述预定指令集合中的指令,得到第一容器镜像。
11.一种容器镜像的管理装置,其特征在于,包括:
第一获取单元,用于获取容器镜像的标识;
第二获取单元,用于根据所述容器镜像的标识获取从预定初始容器镜像至所述容器镜像所执行的历史操作指令对应的第一指令集合;
反馈单元,用于当接收到所述容器镜像的获取请求时,反馈所述预定初始容器镜像和所述第一指令集合。
12.根据权利要求11所述的容器镜像的管理装置,其特征在于,还包括:
第一合并或删除单元,用于将所述第一指令集合中对所述预定初始容器镜像具有相反操作意图的指令合并或删除,得到所述历史操作指令对应的第二指令集合;
对应地,所述反馈单元用于当接收到所述容器镜像的获取请求时,反馈所述预定初始容器镜像和所述第二指令集合。
13.根据权利要求11或12所述的容器镜像的管理装置,其特征在于,所述第一指令集合为涉及容器镜像环境改变的操作指令。
14.根据权利要求11所述的容器镜像的管理装置,其特征在于,还包括:
第三获取单元,用于获取所述预定初始容器镜像;
第四获取单元,用于获取待优化容器镜像所对应的所述第一指令集合;
第一写入单元,用于在所述预定初始容器镜像的基础上叠加层并写入所述第一指令集合中的指令,得到优化后的容器镜像。
15.根据权利要求12所述的容器镜像的管理装置,其特征在于,还包括:
第五获取单元,用于获取所述预定初始容器镜像;
第六获取单元,用于获取待优化容器镜像所对应的所述第二指令集合;
第二写入单元,用于在所述预定初始容器镜像的基础上叠加层并写入所述第二指令集合中的指令,得到优化后的容器镜像。
16.一种容器镜像的使用装置,其特征在于,包括:
第一发送单元,用于发送所需容器镜像的获取请求;容器镜像管理平台根据所述获取请求会反馈预定初始容器镜像和从所述预定初始容器镜像至所述所需容器镜像的预定指令集合;
第三写入单元,用于在所述预定初始容器镜像的基础上叠加层并写入所述预定指令集合中的指令,得到所需容器镜像;
第四写入单元,用于在所需容器镜像的基础上写入相关操作指令得到所需容器。
17.一种容器镜像的构建装置,其特征在于,包括:
第七获取单元,用于获取第一容器镜像,并获取从预定初始容器镜像至所述第一容器镜像所执行的历史操作指令对应的第三指令集合;
第五写入单元,用于在所述第一容器镜像的基础上叠加层并写入相关操作指令得到第二容器;
并入单元,用于将所述相关操作指令并入所述第三指令集合,形成第四指令集合;
提交单元,用于将第二容器镜像的标识和所述第四指令集合提交至容器镜像管理平台。
18.根据权利要求17所述的容器镜像的构建装置,其特征在于,还包括:
第二合并或删除单元,用于将所述第四指令集合中对所述预定初始容器镜像具有相反操作意图的指令合并或删除,得到所述历史操作指令对应的第五指令集合;
对应地,所述提交单元用于将第二容器镜像的标识和所述第五指令集合提交至容器镜像管理平台。
19.根据权利要求17或18所述的容器镜像的构建装置,其特征在于,还包括:
第三合并或删除单元,用于将所述第三指令集合中、对容器镜像具有相反操作意图的指令进行合并或删除;和/或,
第四合并或删除单元,用于将所述相关指令中对容器镜像具有相反操作意图的指令进行合并或删除。
20.根据权利要求14所述的容器镜像的构建装置,其特征在于,所述第七获取单元包括:
发送子单元,用于发送第一容器镜像的获取请求;容器镜像管理平台根据所述获取请求会反馈预定初始容器镜像和从所述预定初始容器镜像至所述第一容器镜像的预定指令集合;
写入子单元,用于在所述预定初始容器镜像的基础上叠加层并写入所述预定指令集合中的指令,得到第一容器镜像。
21.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器和所述存储器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至10任一项所述的方法。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行权利要求1至10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811547534.0A CN109783191B (zh) | 2018-12-18 | 2018-12-18 | 容器镜像的管理、使用及构建方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811547534.0A CN109783191B (zh) | 2018-12-18 | 2018-12-18 | 容器镜像的管理、使用及构建方法、装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109783191A true CN109783191A (zh) | 2019-05-21 |
CN109783191B CN109783191B (zh) | 2020-09-08 |
Family
ID=66497038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811547534.0A Active CN109783191B (zh) | 2018-12-18 | 2018-12-18 | 容器镜像的管理、使用及构建方法、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109783191B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114936066A (zh) * | 2022-04-15 | 2022-08-23 | 支付宝(杭州)信息技术有限公司 | 镜像堆叠方法、装置、设备、介质及程序产品 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106227579A (zh) * | 2016-07-12 | 2016-12-14 | 深圳市中润四方信息技术有限公司 | 一种Docker容器构建方法及Docker管理控制台 |
CN106293875A (zh) * | 2016-08-04 | 2017-01-04 | 中国联合网络通信集团有限公司 | 一种Docker容器的创建方法和创建系统 |
CN106528200A (zh) * | 2016-10-08 | 2017-03-22 | 广州视睿电子科技有限公司 | 一种基于docker compose的持续集成方法及装置 |
CN106775760A (zh) * | 2017-01-04 | 2017-05-31 | 郑州云海信息技术有限公司 | 基于源码库上传容器镜像至镜像仓库的方法及系统 |
CN107229507A (zh) * | 2017-05-31 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种容器镜像构建方法及装置 |
US9891952B1 (en) * | 2016-11-01 | 2018-02-13 | Red Hat, Inc. | Lazy persistent storage volume provisioning |
CN107766126A (zh) * | 2017-11-15 | 2018-03-06 | 腾讯科技(深圳)有限公司 | 容器镜像的构建方法、系统、装置及存储介质 |
CN108958981A (zh) * | 2018-07-24 | 2018-12-07 | 广东浪潮大数据研究有限公司 | 一种基于docker的镜像保存方法及相关装置 |
-
2018
- 2018-12-18 CN CN201811547534.0A patent/CN109783191B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106227579A (zh) * | 2016-07-12 | 2016-12-14 | 深圳市中润四方信息技术有限公司 | 一种Docker容器构建方法及Docker管理控制台 |
CN106293875A (zh) * | 2016-08-04 | 2017-01-04 | 中国联合网络通信集团有限公司 | 一种Docker容器的创建方法和创建系统 |
CN106528200A (zh) * | 2016-10-08 | 2017-03-22 | 广州视睿电子科技有限公司 | 一种基于docker compose的持续集成方法及装置 |
US9891952B1 (en) * | 2016-11-01 | 2018-02-13 | Red Hat, Inc. | Lazy persistent storage volume provisioning |
CN106775760A (zh) * | 2017-01-04 | 2017-05-31 | 郑州云海信息技术有限公司 | 基于源码库上传容器镜像至镜像仓库的方法及系统 |
CN107229507A (zh) * | 2017-05-31 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种容器镜像构建方法及装置 |
CN107766126A (zh) * | 2017-11-15 | 2018-03-06 | 腾讯科技(深圳)有限公司 | 容器镜像的构建方法、系统、装置及存储介质 |
CN108958981A (zh) * | 2018-07-24 | 2018-12-07 | 广东浪潮大数据研究有限公司 | 一种基于docker的镜像保存方法及相关装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114936066A (zh) * | 2022-04-15 | 2022-08-23 | 支付宝(杭州)信息技术有限公司 | 镜像堆叠方法、装置、设备、介质及程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN109783191B (zh) | 2020-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11226847B2 (en) | Implementing an application manifest in a node-specific manner using an intent-based orchestrator | |
AU2016405587B2 (en) | Splitting and moving ranges in a distributed system | |
US9514004B2 (en) | Restore in cascaded copy environment | |
CN103312624B (zh) | 一种消息队列服务系统和方法 | |
CN104281468A (zh) | 分布式虚拟机图像管理的方法和系统 | |
CN104937564B (zh) | 组表格的数据冲洗 | |
CN104412249A (zh) | 基于云的文件系统内的文件处置 | |
US10620871B1 (en) | Storage scheme for a distributed storage system | |
CN106910045A (zh) | 工作流引擎设计方法及系统 | |
US11243980B2 (en) | Monotonic transactions in a multi-master database with loosely coupled nodes | |
US10877684B2 (en) | Changing a distributed storage volume from non-replicated to replicated | |
CN106708627A (zh) | 一种基于kvm的多虚拟机映射、多通路的fuse加速方法及系统 | |
CN108491163A (zh) | 一种大数据处理方法、装置和存储介质 | |
CN105357042A (zh) | 一种高可用集群系统及其主节点和从节点 | |
CN111684437A (zh) | 按时间顺序排序的错位更新键-值存储系统 | |
US20200099745A1 (en) | Storage segment server covered cache | |
CN108470008B (zh) | 串口数据读写方法、装置、计算机设备和存储介质 | |
CN113010265A (zh) | Pod的调度方法、调度器、存储插件及系统 | |
CN107295030A (zh) | 一种数据写入方法、装置、数据处理方法、装置及系统 | |
US20180246949A1 (en) | Early thread return with secondary event writes | |
CN109783191A (zh) | 容器镜像的管理、使用及构建方法、装置 | |
WO2024001025A1 (zh) | 一种预执行缓存数据清理方法和区块链节点 | |
WO2016206392A1 (zh) | 数据读写方法及装置 | |
CN115470303A (zh) | 一种数据库访问方法、装置、系统、设备及可读存储介质 | |
CN109445966A (zh) | 事件处理方法、装置、介质和计算设备 |
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 |