CN113806009A - 一种Docker容器自动重建方法、终端设备及存储介质 - Google Patents
一种Docker容器自动重建方法、终端设备及存储介质 Download PDFInfo
- Publication number
- CN113806009A CN113806009A CN202110894099.4A CN202110894099A CN113806009A CN 113806009 A CN113806009 A CN 113806009A CN 202110894099 A CN202110894099 A CN 202110894099A CN 113806009 A CN113806009 A CN 113806009A
- Authority
- CN
- China
- Prior art keywords
- container
- mirror image
- mounting
- docker
- directory
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000013507 mapping Methods 0.000 claims abstract description 8
- 238000004806 packaging method and process Methods 0.000 claims abstract description 8
- 238000004590 computer program Methods 0.000 claims description 17
- 238000012216 screening Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 4
- 230000009467 reduction Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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/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
-
- 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/45562—Creating, deleting, cloning virtual machine instances
-
- 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/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种Docker容器自动重建方法、终端设备及存储介质,该方法中包括:提取容器的运行参数,并生成参数配置文件;将容器固化为容器镜像并导出;当具有挂载路径时,通过元数据中的挂载路径映射信息定位挂载路径目录,将挂载路径目录和对应的挂载数据作为挂载目录数据进行固定;将容器镜像、参数配置文件和挂载目录数据打包为容器固定文件包进行下载;将下载下来的容器固定文件包传输至容器部署环境,导入容器镜像;当包含挂载目录数据时,拷贝挂载目录数据至预设的目录下根据导入的容器镜像,通过参数配置文件构建容器运行指令,通过容器运行指令运行容器。本发明整个固定和还原过程基于自动化执行相关步骤,大大降低使用者的取证门槛。
Description
技术领域
本发明涉及容器技术领域,尤其涉及一种Docker容器自动重建方法、终端设备及存储介质。
背景技术
由于Docker容器的轻量化、部署速度快等特点,近年来Docker容器的应用越来越广泛,由于很多非法站点部署到容器上,容器取证也受到取证人员的关注和重视。对容器进行快速固定及还原,并加以分析,提取出有效数据,是容器取证的必要步骤。
目前市面上Docker容器的固定和还原主要通过如下方式进行:首先将容器备份为Docker镜像快照,然后将镜像上传到Docker远程仓库或者直接保存到本地。如果将镜像上传到Docker远程仓库,要还原时直接运行命令恢复并运行命令;如果备份到本地,需要拷贝该镜像到需要恢复的机器上,加载该镜像并运行需要的容器。
通过将镜像上传到Docker远程仓库或者备份到本地方案存在以下几点不足:
1.需要在Docker公共仓库注册属于自己的Docker帐号;
2.如果登录自己的Docker帐号将破坏服务器的原有登录信息且不可恢复,会对目标服务器留下登录痕迹;
3.需要手动拷贝挂载数据目录:容器挂载的文件不会保存进镜像,需要分析挂载的路径并拷贝相关数据目录;
4.使用门槛较高:固定和还原操作步骤较为繁琐,需要使用者对Docker的操作命令有一定的了解,手动执行相关命令;
5.缺少容器的启动参数分析:如何分析容器的启动方式,映射的端口,挂载的路径等操作,对于能否成功重建容器是重要的一环。
发明内容
为了解决上述问题,本发明提出了一种Docker容器自动重建方法、终端设备及存储介质。
具体方案如下:
一种Docker容器自动重建方法,包括以下步骤:
S1:提取容器的运行参数,并根据容器的运行参数生成容器的参数配置文件;
S2:将容器固化为容器镜像并导出;
S3:根据容器的元数据判断容器是否具有挂载路径,如果是,通过元数据中的挂载路径映射信息定位挂载路径目录,将挂载路径目录和对应的挂载数据作为挂载目录数据进行固定,进入S4;否则,进入S5;
S4:将容器镜像、参数配置文件和挂载目录数据打包为容器固定文件包进行下载,进入S6;
S5:将容器镜像和参数配置文件打包为容器固定文件包进行下载;
S6:将下载下来的容器固定文件包传输至容器部署环境,导入容器镜像;
S7:判断容器固定文件包内是否包含挂载目录数据,如果是,则拷贝挂载目录数据至预设的目录下,进入S8;否则,直接进入S8;
S8:根据导入的容器镜像,通过参数配置文件构建容器运行指令,通过容器运行指令运行容器。
进一步的,容器的运行参数从对容器解析后的基础信息中筛选获得。
进一步的,容器镜像采用分层方式进行固化。
进一步的,使用docker commit命令将容器固化为容器镜像;使用docker save命令将容器镜像导出。
进一步的,导入容器镜像后,还包括判断容器镜像是否导入成功,如果导入失败,则判断容器镜像名称与标签是否存在冲突,如果存在,则修改标签后再次导入。
进一步的,步骤S8之前,还包括创建自定义docker局域网络,用于容器还原的网络环境。
一种Docker容器自动重建终端设备,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例上述的方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述的方法的步骤。
本发明采用如上技术方案,提供了一种Docker容器的自动重建方法,可以有效的对Docker容器进行快速固定和还原。整个固定和还原过程基于自动化执行相关步骤,大大降低使用者的取证门槛。在越来越多的非法网站部署到Docker容器上,该方法提供的对容器快速取证有着广阔的应用前景。
附图说明
图1所示为本发明实施例一的流程图。
具体实施方式
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。
现结合附图和具体实施方式对本发明进一步说明。
实施例一:
本发明实施例提供了一种Docker容器自动重建方法,如图1所示,所述方法包括以下步骤:
S1:提取容器的运行参数,并根据容器的运行参数生成容器的参数配置文件。
该实施例中容器的运行参数从对容器解析后的基础信息中筛选获得。具体的,容器的运行参数包括容器名称、网络别名、端口映射等构造容器的运行指令。其中:
容器在运行时会有对应的运行状态,通过运行状态可以解析容器名称和端口映射信息。
容器的元数据包含了容器几乎所有的关键信息,通过元数据可以查看容器的底层基础信息,包括容器ID、创建时间、运行状态、启动参数、挂载路径、网络配置等。
S2:将容器固化为容器镜像并导出。
该实施例中容器镜像采用分层方式进行固化,将运行容器的读写层提交固化成镜像层,并下载固化后的镜像,该方式可以保留容器镜像的分层结构与完整记录,保证还原后容器镜像的一致性。
具体的,该实施例中使用docker commit命令将容器固化为容器镜像,再使用docker save命令将容器镜像导出,该方式可以保留容器镜像的层级结构。
S3:根据容器的元数据判断容器是否具有挂载路径,如果是,通过元数据中的挂载路径映射信息定位挂载路径目录,将挂载路径目录和对应的挂载数据作为挂载目录数据进行固定,进入S4;否则,进入S5。
容器固化成容器镜像时,不会将宿主机中的挂载数据打包进去,而且挂载数据经常存放的是站点的源码或者数据库数据,因此分析挂载路径并固定下来也是重要的一个环节。
S4:将容器镜像、参数配置文件和挂载目录数据打包为容器固定文件包进行下载,进入S6。
S5:将容器镜像和参数配置文件打包为容器固定文件包进行下载。
容器固定文件包供容器还原时使用。
S6:将下载下来的容器固定文件包传输至容器部署环境,导入容器镜像。
该实施例中容器部署环境指安装有Docker引擎的服务器,不限制操作系统环境。
通过固定下来的容器固定文件包,可以在任何安装有Docker引擎的服务器中进行容器还原操作,还原过程会自动分析固定下来的参数配置文件,自动组装运行参数,实现容器的快速还原。
将固化的容器镜像还原到容器引擎中,由于固定时保留了容器的分层结构,因此导入镜像还原后保留着镜像的分层结构完整记录。
进一步的,导入容器镜像后,还包括判断容器镜像是否导入成功,如果导入失败,则判断容器镜像名称与标签是否存在冲突,如果存在,则修改标签后再次导入。
S7:判断容器固定文件包内是否包含挂载目录数据,如果是,则拷贝挂载目录数据至预设的目录下,进入S8;否则,直接进入S8。
用于挂载目录数据拷贝的预设的目录本领域技术人员可以自行设定,在运行容器时配置即可。挂载目录数据用于执行还原指令时的映射。
S8:根据导入的容器镜像,通过参数配置文件构建容器运行指令,通过容器运行指令运行容器。
进一步的,在步骤S8之前,还包括创建自定义docker局域网络,用于容器还原的网络环境。
本发明实施例具有以下的改进点:
1.基于容器运行时的状态,分析容器运行中的容器名称、映射端口、别名等信息;
2.通过解析容器信息中挂载的路径,自动下载挂载目录数据,供重建运行时指定挂载目录;
3.自动将指定容器打包成镜像,并导出镜像保存到指定目录;
4.根据导出的容器镜像和解析到的参数配置文件,在安装有容器引擎的服务器导入镜像,并将镜像运行为一个容器。
5.容器固定和还原两个过程不需要使用者手动输入相关命令,实现一键操作既可完成容器的重建操作,降低使用门槛。
实施例二:
本发明还提供一种Docker容器自动重建终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例一的上述方法实施例中的步骤。
进一步地,作为一个可执行方案,所述Docker容器自动重建终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述Docker容器自动重建终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述Docker容器自动重建终端设备的组成结构仅仅是Docker容器自动重建终端设备的示例,并不构成对Docker容器自动重建终端设备的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述Docker容器自动重建终端设备还可以包括输入输出设备、网络接入设备、总线等,本发明实施例对此不做限定。
进一步地,作为一个可执行方案,所称处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述Docker容器自动重建终端设备的控制中心,利用各种接口和线路连接整个Docker容器自动重建终端设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述Docker容器自动重建终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述方法的步骤。
所述Docker容器自动重建终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)以及软件分发介质等。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
Claims (8)
1.一种Docker容器自动重建方法,其特征在于,包括以下步骤:
S1:提取容器的运行参数,并根据容器的运行参数生成容器的参数配置文件;
S2:将容器固化为容器镜像并导出;
S3:根据容器的元数据判断容器是否具有挂载路径,如果是,通过元数据中的挂载路径映射信息定位挂载路径目录,将挂载路径目录和对应的挂载数据作为挂载目录数据进行固定,进入S4;否则,进入S5;
S4:将容器镜像、参数配置文件和挂载目录数据打包为容器固定文件包进行下载,进入S6;
S5:将容器镜像和参数配置文件打包为容器固定文件包进行下载;
S6:将下载下来的容器固定文件包传输至容器部署环境,导入容器镜像;
S7:判断容器固定文件包内是否包含挂载目录数据,如果是,则拷贝挂载目录数据至预设的目录下,进入S8;否则,直接进入S8;
S8:根据导入的容器镜像,通过参数配置文件构建容器运行指令,通过容器运行指令运行容器。
2.根据权利要求1所述的Docker容器自动重建方法,其特征在于:容器的运行参数从对容器解析后的基础信息中筛选获得。
3.根据权利要求1所述的Docker容器自动重建方法,其特征在于:容器镜像采用分层方式进行固化。
4.根据权利要求1所述的Docker容器自动重建方法,其特征在于:使用docker commit命令将容器固化为容器镜像;使用dockersave命令将容器镜像导出。
5.根据权利要求1所述的Docker容器自动重建方法,其特征在于:导入容器镜像后,还包括判断容器镜像是否导入成功,如果导入失败,则判断容器镜像名称与标签是否存在冲突,如果存在,则修改标签后再次导入。
6.根据权利要求1所述的Docker容器自动重建方法,其特征在于:步骤S8之前,还包括创建自定义docker局域网络,用于容器还原的网络环境。
7.一种Docker容器自动重建终端设备,其特征在于:包括处理器、存储器以及存储在所述存储器中并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1~6中任一所述方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1~6中任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110894099.4A CN113806009A (zh) | 2021-08-05 | 2021-08-05 | 一种Docker容器自动重建方法、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110894099.4A CN113806009A (zh) | 2021-08-05 | 2021-08-05 | 一种Docker容器自动重建方法、终端设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113806009A true CN113806009A (zh) | 2021-12-17 |
Family
ID=78893270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110894099.4A Pending CN113806009A (zh) | 2021-08-05 | 2021-08-05 | 一种Docker容器自动重建方法、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113806009A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107526626A (zh) * | 2017-08-24 | 2017-12-29 | 武汉大学 | 一种基于CRIU的Docker容器热迁移方法及系统 |
CN109408115A (zh) * | 2018-09-12 | 2019-03-01 | 上海数耕智能科技有限公司 | 一种基于容器环境中迁移对象的方法及计算系统 |
CN110119377A (zh) * | 2019-04-24 | 2019-08-13 | 华中科技大学 | 面向Docker容器的在线迁移系统实现和优化方法 |
US20200293354A1 (en) * | 2018-02-12 | 2020-09-17 | Genetalks Bio-Tech (Changsha) Co., Ltd. | Container dockerfile and container mirror image quick generation methods and systems |
-
2021
- 2021-08-05 CN CN202110894099.4A patent/CN113806009A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107526626A (zh) * | 2017-08-24 | 2017-12-29 | 武汉大学 | 一种基于CRIU的Docker容器热迁移方法及系统 |
US20200293354A1 (en) * | 2018-02-12 | 2020-09-17 | Genetalks Bio-Tech (Changsha) Co., Ltd. | Container dockerfile and container mirror image quick generation methods and systems |
CN109408115A (zh) * | 2018-09-12 | 2019-03-01 | 上海数耕智能科技有限公司 | 一种基于容器环境中迁移对象的方法及计算系统 |
CN110119377A (zh) * | 2019-04-24 | 2019-08-13 | 华中科技大学 | 面向Docker容器的在线迁移系统实现和优化方法 |
Non-Patent Citations (3)
Title |
---|
张永夏: "管理Docker容器的数据卷", 《网络安全和信息化》 * |
张翰博等: "基于RBD的Docker虚拟化技术性能优化研究", 《信息技术》 * |
耿朋等: "面向Dockerfile的容器镜像构建工具", 《计算机系统应用》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11513926B2 (en) | Systems and methods for instantiation of virtual machines from backups | |
US10592677B2 (en) | Systems and methods for patching vulnerabilities | |
CN107704356B (zh) | 异常堆栈信息获取方法、装置及计算机可读存储介质 | |
CN109597677B (zh) | 用于处理信息的方法和装置 | |
US10108501B2 (en) | Terminal backup and recovery method | |
CN104049986A (zh) | 插件加载方法及装置 | |
US11150981B2 (en) | Fast recovery from failures in a chronologically ordered log-structured key-value storage system | |
CN111104387A (zh) | 在服务器上获取数据集的方法和装置 | |
CN110362371B (zh) | 视图层级的控制方法、装置及系统、计算机设备及介质 | |
CN112416379B (zh) | 一种应用程序安装方法、装置、计算设备及可读存储介质 | |
CN113867768A (zh) | 操作系统处理方法、装置、电子设备及存储介质 | |
CN113806009A (zh) | 一种Docker容器自动重建方法、终端设备及存储介质 | |
US8819657B1 (en) | Method and apparatus for maintaining data consistency in a virtualized application during software update installation | |
CN116225618A (zh) | 基于容器镜像启动虚拟机的方法及虚拟机启动装置 | |
CN111737223B (zh) | 一种文件拷贝方法、装置、设备及存储介质 | |
CN112712610B (zh) | 车辆诊断日志处理方法、装置、终端设备及可读存储介质 | |
CN114816816A (zh) | 崩溃堆栈信息处理方法、装置、设备及存储介质 | |
US20200183775A1 (en) | Chronologically ordered log-structured key-value store from failures during garbage collection | |
CN109002710A (zh) | 一种检测方法、装置及计算机可读存储介质 | |
CN113900893A (zh) | 一种日志获取方法及其相关设备 | |
CN113127810A (zh) | 数据资产的保护方法、装置、电子设备和存储介质 | |
GB2599522A (en) | Server device, server device control method, program, official article determination system, and official article determination system control method | |
CN117112072B (zh) | 一种跨平台虚拟机驱动替换方法、系统及存储介质 | |
CN108897561B (zh) | 一种数据存储方法及存储系统 | |
EP4057155A1 (en) | Memory-efficient data unarchiving |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211217 |