CN112732403B - 一种基于容器的文件管理方法和电子设备 - Google Patents
一种基于容器的文件管理方法和电子设备 Download PDFInfo
- Publication number
- CN112732403B CN112732403B CN202110004983.6A CN202110004983A CN112732403B CN 112732403 B CN112732403 B CN 112732403B CN 202110004983 A CN202110004983 A CN 202110004983A CN 112732403 B CN112732403 B CN 112732403B
- Authority
- CN
- China
- Prior art keywords
- file
- container
- slave
- request message
- host
- 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.)
- Active
Links
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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- 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/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于容器的文件管理方法和电子设备,该方法包括:控制所述主容器监听所述至少一从容器发送的文件请求消息;在监听到所述从容器发送的文件请求消息时,对所述文件请求消息进行权限认证;在所述权限认证通过后,控制所述主容器执行所述文件请求消息对应的操作。在本发明中,主容器作为唯一的数据卷挂载容器,对至少一从容器提供访问宿主机文件的读写接口,从而避免了容器之间互相修改文件,造成宿主机目录混乱的问题,总体上保证了容器的正常运行。
Description
技术领域
本发明属于计算机信息技术领域,更具体地,涉及一种基于容器的文件管理方法和电子设备。
背景技术
虚拟化是云计算环境中提升设备利用率的一种关键技术手段。容器(Docker)的出现推动了操作系统级虚拟化技术的发展,容器凭借其性能高,启动快,开销小,隔离性等特点,开始取代虚拟机在云计算环境中占据越来越重要的地位。
为了很好的实现数据保存和数据共享,Docker提出了Volume数据卷概念,简单的说就是绕过默认的联合文件系统,而以正常的文件或者目录的形式存在于宿主机上,实现持久化。对数据卷的使用,通常是在Docker进行安装时,通过一条数据卷挂载命令实现的,使按照目前的应用方法,多容器情况下各容器在安装时分别进行数据卷挂载。容器越多需要挂载的数据卷也就越多,每个容器利用数据卷技术使用宿主机目录,都需要进行数据卷挂载。
发明人在实现本发明实施例的过程中发现相关技术至少存在以下技术问题:由于每个容器都单独挂载宿主机目录,容易因为多个容器之间挂载同一个宿主机目录时,容器之间互相修改宿主机文件,从而影响各容器内应用程序的运行。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于容器的文件管理方法和电子设备,其目的在于保证容器的正常运行,由此解决在多个容器之间挂载同一个宿主机目录时,宿主机文件容易被修改导致宿主机目录混乱的技术问题。
第一方面,本发明实施例提供一种基于容器的文件管理方法,所述方法应用于电子设备,所述电子设备部署有主容器和至少一从容器,所述主容器用于访问宿主机文件,所述至少一从容器与所述主容器通讯连接,所述方法包括:
控制所述主容器监听所述至少一从容器发送的文件请求消息;
在监听到所述从容器发送的文件请求消息时,对所述文件请求消息进行权限认证;
在所述权限认证通过后,控制所述主容器执行所述文件请求消息对应的操作。
可选地,所述方法还包括部署所述主容器和所述至少一从容器的步骤,
所述部署所述主容器和所述至少一从容器的步骤包括:
创建一文件管理应用程序,并将所述文件管理应用程序打包至容器中,以生成主容器;
创建当前实际应用业务对应的至少一应用程序,并将所述至少一应用程序打包至容器中,以生成至少一从容器;
设置所述主容器和所述从容器访问所述宿主机文件的权限;
设置所述主容器和所述从容器的启动顺序。
可选地,所述对所述文件请求消息进行权限认证包括:
验证所述从容器是否具备文件操作权限,以及待操作的文件是否具备所述文件请求消息所请求的权限。
可选地,所述控制所述主容器执行所述文件请求消息对应的操作,包括:
在所述文件请求消息为读文件操作时,控制所述主容器获取所述文件请求消息对应的宿主机文件,并向发送所述文件请求消息的所述从容器返回所述宿主机文件。
可选地,所述方法还包括:
在所述宿主机文件为加密储存时,控制所述主容器对获得的所述宿主机文件执行解密操作,并向发送所述文件请求消息的所述从容器返回解密后的所述宿主机文件。
可选地,所述向发送所述文件请求消息的所述从容器返回所述宿主机文件,包括:
根据所述宿主机文件的大小,从所述宿主机文件中获取所述从容器所需的文件块,并向所述从容器返回所述文件块。
可选地,所述控制所述主容器执行所述文件请求消息对应的操作,包括:
在所述文件请求消息为写文件操作时,控制所述主容器获取所述文件请求消息对应的待写入文件,并将所述待写入文件保存至所述主容器在宿主机的挂载路径。
可选地,所述方法还包括:
判断所述待写入文件是否加密储存;
若是,控制所述主容器对所述待写入文件进行加密操作,获得文件密文,并将所述文件密文保存至所述主容器在宿主机的挂载路径。
可选地,所述控制所述主容器对所述待写入文件进行加密操作,获得文件密文,并将所述文件密文保存至所述主容器在宿主机的挂载路径,包括:
获取所述从容器对应的原始宿主机文件,比较所述原始宿主机文件和所述待写入文件,获得更改部分的文件内容;
控制所述主容器将所述更改部分的文件内容写入所述原始宿主机文件,并进行整体加密,获得整体加密后的文件密文;
将所述文件密文保存至所述主容器在宿主机的挂载路径。
第二方面,本发明实施例提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
与现有技术相比,本发明实施例提供的基于容器的文件管理方法和电子设备,通过部署主容器和至少一从容器,控制所述主容器监听所述至少一从容器发送的文件请求消息;在监听到所述从容器发送的文件请求消息时,对所述文件请求消息进行权限认证;在所述权限认证通过后,控制所述主容器执行所述文件请求消息对应的操作。其中,主容器作为唯一的数据卷挂载容器,对所述至少一从容器提供访问宿主机文件的读写接口,从而避免了容器之间互相修改文件,造成宿主机目录混乱的问题,总体上保证了容器的正常运行。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是一个实施例提供的基于容器的文件管理方法的流程图;
图2是一个实施例提供的基于容器的文件管理系统的系统示意图;
图3是一个实施例提供的在文件请求消息为读文件操作时,控制所述主容器执行所述文件请求消息对应的操作的方法的流程图;
图4是一个实施例提供的一个json格式文本的文件示意图;
图5是一个实施例提供的在文件请求消息为写文件操作时,控制所述主容器执行所述文件请求消息对应的操作的方法的流程图;
图6是一个实施例提供的基于容器的文件管理装置的结构示意图;
图7是一个实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明实施例提供的基于容器的文件管理方法和装置,主要通过设置一专用的文件管理容器,即主容器,将该主容器作为唯一的数据卷挂载容器,对其他容器提供统一的宿主机文件数据读写接口,从而可以对其他容器所依赖的文件进行集中管理,确保了容器运行所依赖文件的安全性,防止文件意外修改而导致依赖该文件的应用程序运行异常,保证了多容器访问时的文件安全,使得容器运行更加稳定可控。此外,增加的主容器在兼顾文件安全可控时,还提供了更多的文件管理权限。
具体地,请参照图1,图1是一个实施例提供的基于容器的文件管理方法的流程图。该方法可应用于电子设备,该方法包括:
S11、在所述电子设备部署主容器和至少一从容器。
其中,所述主容器是本发明实施例提供的一种专用的文件管理容器,该主容器是唯一的数据卷挂载容器,其用于访问宿主机文件。所谓数据卷,即是绕过默认的联合文件系统,以正常的文件或目录的形式存在于宿主机上,实现持久化。通过数据卷可以在容器之间实现共享和重用,对数据卷的修改会立马生效,对数据卷的更新不会影响镜像,并且数据卷会一直存在,直到没有容器使用。所述主容器对所述数据卷的使用,具体可是在安装所述主容器时,通过一条数据卷挂载命令实现。
可以创建一文件管理应用程序,并将该文件管理应用程序打包至容器中,从而创建了一个文件管理容器,即所述主容器。该主容器包括容器启动需要的镜像和可操作的应用层,所述文件管理应用程序可写入容器的应用层。所述文件管理应用程序是用于实现主容器对从容器进行管理的程序,比如,所述文件管理应用程序包括身份认证模块、加解密模块、日志管理模块和文件传输模块等。所述身份认证模块可用于对从容器的身份进行验证,比如验证所述从容器是否具备文件操作权限,从而防止从容器随意访问文件。所述加解密模块用于对文件进行加密或解密操作,该加密、解密的操作过程均由主容器操控,从而在保证文件的安全性的同时提高了各容器对文件的处理效率。所述日志管理模块用于记录文件操作日志,比如操作时间,访问的容器名称,操作的文件名称等。通过该日志管理模块可加强对文件的管控。所述文件传输模块用于负责文件内容在宿主机和容器之间的传输,其包括:宿主机与主容器之间的文件传输,以及主容器与从容器之间的文件传输,其中,所述宿主机是部署于所述电子设备上的主机,其是相对于所述主容器和所述从容器而言的,主容器和从容器作为虚拟机是安装在所述宿主机上的,只能在宿主机上才能运行。
需要说明的是,所述文件管理应用程序除了包括上述身份认证模块、加解密模块、日志管理模块和文件传输模块的功能外,还可以增加或减少功能,可以根据具体的业务更新或修改该文件管理应用程序。
所述从容器包括一个或多个,可以根据当前实际应用业务创建对应的应用程序,并将该应用程序打包至容器中,从而创建得到从容器。其中,如果所述当前实际应用业务包括多类时,可以是一类业务对应创建一应用程序,将该应用程序打包至一容器,从而生成一从容器,相应地,最后获得多个从容器。
上述主容器和从容器都部署到一个运行预设系统(比如Ubuntu)的设备上,也可以运行在其他支持容器技术的设备上。其中,在部署主容器和从容器时,可直接使用docker原生工具进行手动部署。除了所述主容器外,全部从容器都禁止挂载宿主机目录,从容器在访问宿主机文件时,需要通过该主容器发起文件的读写申请。在主容器接收到请求后,可利用数据卷技术读取宿主机文件,然后将获得的宿主机文件返回给从容器;也可根据从容器的写文件请求,将对应的文件存储在宿主机上,由此,实现未挂载宿主机目录的容器与宿主机文件进行读、写操作。
其中,宿主机目录是宿主机的文件系统上存在的目录,它是上级目录或父目录,其用于保存用户文件。
其中,所述主容器与所述从容器之间可采用MQTT(Message Queuing TelemetryTransport,消息队列遥测传输)方式进行通信,还可以采用TCP等容器本身支持的方式通信。
在本实施例中,所述主容器优先于其他从容器最先启动。不同的多容器管理方案中设置容器启动先后顺序的方法有所不同,在本实施例中,可以参考容器官方的开源项目Docker-Compose,通过docker-compose.yml模板文件的depends_on标签,设置其他业务容器(即从容器)依赖于文件管理容器(即主容器),从而实现文件管理容器的优先启动。
图2是本实施例提供的基于容器的文件管理系统的系统示意图,其中,在宿主机上部署N个从容器和1个主容器,N大于或等于1,该N个从容器分别与所述主容器之间基于MQTT协议通信,所述主容器包括身份认证模块、加解密模块、日志管理模块和文件传输模块,所述主容器可访问宿主机文件,所述宿主机文件包括各从容器所需的文件,各从容器所需的文件可存放于宿主机目录的子目录下,比如一个子目录包括从容器1所需文件、从容器2所需文件以及从容器1与从容器2共用文件。所述主容器基于数据卷技术与宿主机通讯连接,具体地,可将宿主机目录与主容器内部的文件系统之上的某一目录建立绑定关系,主容器内的进程向该某一目录中写数据的时候是直接写在所述宿主机目录上的,同理主容器内的进程读数据时,也是直接在所述宿主机目录上读取的。在写数据时可以实现容器内的数据保存时绕过容器内部文件系统的限制,从而与宿主机的文件系统建立关系。其中,一个主容器可以挂载多个数据卷,而不仅限于一个。
图2中部署的基于容器的文件安全管理系统,可以设置一主容器实现对其他容器所依赖的文件进行统一管理,确保了容器运行所依赖文件的安全性,保证了容器运行的稳定性和可靠性。
需要说明的是,图2仅作为基于容器的文件安全管理系统的一个示意图,该系统还可以以其他形式呈现而不仅限于图2,比如主容器中包括更多的其他模块或者删除其中某一模块等。
S12、控制所述主容器监听所述至少一从容器发送的文件请求消息。
在上述步骤S11中部署好包括主容器和从容器的文件管理系统后,可控制主容器对从容器的文件请求消息进行监听,具体可通过MQTT消息订阅的方式获取从容器发送的文件请求消息。所述文件请求消息是用于对文件进行操作的请求,包括读文件请求,写文件请求等。
在本实施例中,容器之间采用MQTT通信,其消息接收函数是在一个单独的线程中,当多个从容器同时发送文件请求消息,以请求读或写同一文件时,其各自对应的订阅消息仍是依次抵达的,因此,可以采用排队处理的方式依次处理所述文件请求消息,命令依照先后顺序执行,从而避免多个容器命令同时操作一个文件而导致的冲突情况发生。当然,在实际应用过程中,除了根据命令先后顺序处理所述文件请求消息之外,还可以采用其他方式处理同时发送的多个文件请求消息。
S13、在监听到所述从容器发送的文件请求消息时,对所述文件请求消息进行权限认证。
为了提高文件的安全性,避免从容器对宿主机文件进行修改后造成文件访问失败,并使主容器具有更广泛的管理功能,本实施例的方法还对监听到的文件请求消息进行权限认证,可以通过图2中所述主容器中的身份认证模块来完成所述文件请求消息的权限认证过程。
其中,所述对所述文件请求消息进行权限认证包括:验证所述从容器是否具备文件操作权限,对于不具备操作权限的从容器,所述主容器可对其发送的文件请求消息不予处理。从容器的文件操作权限可以在进行容器安装时设置,可根据实际业务赋予不同从容器的文件操作权限。对所述文件请求消息进行权限认证还包括:验证待操作的文件是否具备所述文件请求消息所请求的权限。所述待操作的文件是存储于宿主机目录中的文件,可以对宿主机目录中的文件设置不同的文件操作权限,比如,文件1只能执行读操作,文件2只能执行写操作,如果所述文件请求消息是针对文件1的写操作,则验证待操作的文件不具备所述文件请求消息所请求的权限。
如果上述两个条件都符合,则所述文件请求消息通过权限认证。如果所述文件请求消息不符合其中任一条件,所述主容器可向发送文件请求消息的从容器返回权限认证失败的原因。
经过上述权限认证,可以设置容器白名单,所述容器白名单记录了可操作文件的从容器的名称,甚至可具体到从容器可具体操作的文件的权限。在后续权限认证过程中,如果符合所述容器白名单,则直接通过认证。
需要说明的是,对文件请求消息进行权限认证的条件不限制上述两个条件。此外,在其他一些实施例中,也可不必对所述文件请求消息进行权限认证,通过主容器对全部从容器发送的文件请求消息进行协同管理,避免从容器随意修改宿主机文件。
S14、在所述权限认证通过后,控制所述主容器执行所述文件请求消息对应的操作。
在本实施例中,所述主容器对通过权限认证的文件请求消息请求的操作进行响应,比如,执行文件的读取操作,执行文件的写入操作,执行文件的更新操作等。所述主容器在响应所述文件请求消息时,如果同时接收到多个文件请求消息,所述主容器可按顺序处理所述文件请求消息,该顺序可由所述主容器自定义。
下面针对文件请求消息是读文件操作和写文件操作的这两种情况进行详细说明。
在一实施例中,请参照图3,所述文件请求消息对应的操作为读文件操作,所述控制所述主容器执行所述文件请求消息对应的操作包括:
S141、控制所述主容器获取所述文件请求消息对应的宿主机文件;
S143、判断所述宿主机文件是否为加密文件;
若是,执行下述步骤S145。如果不是加密文件,可直接将所述宿主机文件返回给发起请求的从容器。
S145、控制所述主容器对获得的所述宿主机文件执行解密操作,获得解密文件,并向发送所述文件请求消息的所述从容器返回所述解密文件。
其中,从容器通过主容器获得其需要的宿主机文件,所述主容器可判断反馈的宿主机文件是否为加密文件,如果是加密文件,可在主容器中直接解密该文件,将解密后的文件返回给从容器,而不需要在所述从容器中配置文件的解密功能,由主容器统一进行文件的解密操作。其中,所述主容器对文件的解密操作具体可由图2中的加解密模块完成,所述加解密模块保存唯一的秘钥信息,而其他从容器均不予储存该秘钥信息,由此,不仅能够减轻从容器的文件读取负担,也减少了秘钥信息的多次分发,提高了文件的处理效率。
在一些实施例中,在向从容器反馈所述解密文件时,为了提高文件传输效率,还可以对传输的解密文件进行处理。具体地,请再参照图3,所述方法还包括:
S147、根据所述解密文件的大小,从所述解密文件中获取所述从容器所需的文件块,并向所述从容器返回所述文件块。
在本实施例中,可以提前获悉所述解密文件的大小以及文件内容结构,根据所述文件内容结构进行文件块传输的接口设计。
当待返回给从容器的文件过大时,为了尽可能的提高数据传输效率,提高文件的读写访问速度,可对待返回的文件进行处理后再返回给从容器。
具体地,所述主容器和所述从容器之间可定制相应的接口,该接口仅用于传输从容器所需的文件块。所述文件块是所述宿主机文件中提取的部分文件,提取文件块的方式可根据文本格式自定义。例如针对结构化语言文本,比如json、xml等,可以通过键值对或标签,取出文件中需要的部分进行传输,从而减少信息传输量。
例如,请参照图4,为一个json格式文本的一部分,其中,“model”、“point”、“measure”为一级标签,“name”、“type”、“val”为二级标签,由图示可知,通过标签等级和标签名称,即可确定文件的范围。比如从容器需要“point”标签下的name为Indl的val值,则从容器指定一级标签point,二级标签name以及其值Indl,主容器即可返回给从容器的数据为“NULL”,而不需要将整个的json文件都传输给从容器。主容器可对从容器提供类似的功能接口,仅需要传输必要的数据(如本例中的“NULL”)即可满足从容器的需求。
对于其他文本格式的文件,可参考上述定义json文件格的文件的文件块的过程。
上述基于文件的大小来考虑是否需要对待传输给从容器的文件进行处理,在一些实施例中,还可以根据文件的读写频率来决定是否需要处理待传输的文件,比如某一从容器频繁针对某一文件进行读操作,当其连续读操作文件时,当前传输给该从容器的文件可以是前次未传输的文件块,而不必包括全部的文件。如果两次请求的文件相同并且是连续发起读文件请求时,两次请求中可仅传输一次请求对应的文件,并且该传输的文件可以是所述从容器所需的文件块。
本实施例通过对传输给从容器的文件进行处理,减少了容器之间通信的数据量,提高了数据的传输效率,规避了无效数据的传输,提升了文件的读操作效率。
在一实施例中,请参照图5,所述文件请求消息对应的操作为写文件操作,所述控制所述主容器执行所述文件请求消息对应的操作包括:
S142、控制所述主容器获取所述文件请求消息对应的待写入文件;
S144、判断所述待写入文件是否加密储存;
若是,执行下述步骤S146。若不是加密储存,则直接将所述待写入文件保存至宿主机。
S146、控制所述主容器对所述待写入文件进行加密操作,以获得文件密文,并将所述文件密文保存至所述主容器在宿主机的挂载路径。
其中,读/写操作的对象是宿主机文件,操作的宿主机文件所在的路径需要在安装容器时映射在容器中,该映射路径即所述挂载路径,主容器通过访问映射路径来访问宿主机,在确定映射路径后,即相当于主容器申请到了宿主机路径的读、写权限。
在写文件操作时,所述主容器可判断待写入文件是否需要加密储存,如果需要,可在主容器中直接加密该文件,将加密后的文件存储至所述主容器在宿主机的挂载路径。其中,所述主容器对文件的加密操作具体可由图2中的加解密模块完成,所述加解密模块保存唯一的秘钥信息,而其他从容器均不予储存该秘钥信息,由此,不仅能够减轻从容器的文件读取负担,也减少了秘钥信息的多次分发,提高了文件的处理效率。
在待写入文件比较大时,为了提高文件的写操作效率,可以对待写入的文件进行处理后再写入,比如,可以提前获悉待写入文件的大小和文件内容结构,根据所述文件内容结构设计文件传输接口,该接口用于传输待写入的文件块,所述文件块是从所述待写入文件中提取的部分内容,提取文件块的方式可根据文本格式自定义,具体的可参考本实施例中读文件部分的描述。
在一些实施例中,所述控制所述主容器对所述待写入文件进行加密操作,以获得文件密文,并将所述文件密文保存至所述主容器在宿主机的挂载路径,包括:
获取所述从容器对应的原始宿主机文件,通过比较所述原始宿主机文件和所述待写入文件,以获得更改部分的文件内容;
控制所述主容器将所述更改部分的文件内容写入所述原始宿主机文件,并进行整体加密,以获得整体加密后的文件密文;
将所述文件密文保存至所述主容器在宿主机的挂载路径。
获得的所述原始宿主机文件如果是加密的文件,可在主容器中对其进行解密操作,该原始宿主机文件是发起所述写操作请求的从容器对应的宿主机文件。所述更改部分的文件内容是所述原始宿主机文件与所述待写入文件存在区别的文件内容。在本实施例中,提取所述更改部分的文件内容进行单独处理,以尽量减少传输的数据量,提高文件的写操作效率。
上述是针对较大文件的写操作处理过程,对于同一从容器连续发送的写文件请求,并且每一写文件请求对应的待写入文件的大小都比较小时,可以由所述主容器接收预设时间内的写文件请求,并将该预设时间内的写文件请求对应的待写入文件汇聚在一起,然后打包发送给宿主机,从而可以避免主容器频繁访问宿主机。
在一些实施例中,所述方法还包括对上述读文件操作和/或写文件操作的过程进行日志记录,包括记录操作的从容器的名称,操作事件,操作结果,操作时间,操作的文件名称,文件大小,文件挂载的地址,等等。其中,可通过图2所示的日志管理模块负责记录文件操作日志,通过记录文件操作日志,可以优化和加强文件的管控。
本发明实施例提供的基于容器的文件管理方法,通过创建一个主容器,并在该主容器内运行一个专用的文件管理应用程序,对其他容器所依赖到的文件进行集中管理,确保了容器运行所依赖文件的安全性,防止文件意外修改导致依赖该文件的应用程序运行异常,保证多容器访问时的文件的安全,从而使得的容器运行更加稳定可控。另外,可以将其他容器运行的依赖文件进行统一管理,既能保证容器的正常运行,也能提供更多的文件管理权限,同时兼顾文件的安全可控。文件加密存储的情况下,由主容器保存唯一一份秘钥,可以减轻从容器在加解密功能上的时间开销,减轻从容器内应用程序的资源开销。该方案不需要引入其他新技术,可实现的技术成本低,便于开发移植。
请参照图6,图6是一个实施例提供的基于容器的文件管理装置的结构示意图。该装置20可应用于电子设备,该装置20包括:部署模块21、监听模块22、权限认证模块23和处理模块24。
其中,所述部署模块21用于在所述电子设备部署主容器和至少一从容器;所述监听模块22用于控制所述主容器监听所述至少一从容器发送的文件请求消息;所述权限认证模块23用于在监听到所述从容器发送的文件请求消息时,对所述文件请求消息进行权限认证;所述处理模块24用于在所述权限认证通过后,控制所述主容器执行所述文件请求消息对应的操作。
其中,所述文件请求消息对应的操作包括读文件操作,所述处理模块24具体用于:控制所述主容器获取所述文件请求消息对应的宿主机文件;判断所述宿主机文件是否为加密文件;若是,控制所述主容器对获得的所述宿主机文件执行解密操作,获得解密文件,并向发送所述文件请求消息的所述从容器返回所述解密文件。
在一些实施例中,在向从容器反馈所述解密文件时,为了提高文件传输效率,还可以对传输的解密文件进行处理。因此,所述处理模块24具体还用于从所述解密文件中获取所述从容器所需的文件块,并向所述从容器返回所述文件块;若否,直接将所述解密文件返回给所述从容器。
其中,所述文件请求消息对应的操作包括写文件操作,所述处理模块24具体还用于:控制所述主容器获取所述文件请求消息对应的待写入文件;判断所述待写入文件是否加密储存;若是,控制所述主容器对所述待写入文件进行加密操作,以获得文件密文,并将所述文件密文保存至所述主容器在宿主机的挂载路径。
其中,所述控制所述主容器对所述待写入文件进行加密操作,以获得文件密文,并将所述文件密文保存至所述主容器在宿主机的挂载路径,包括:
获取所述从容器对应的原始宿主机文件,通过比较所述原始宿主机文件和所述待写入文件,以获得更改部分的文件内容;
控制所述主容器将所述更改部分的文件内容写入所述原始宿主机文件,并进行整体加密,以获得整体加密后的文件密文;
将所述文件密文保存至所述主容器在宿主机的挂载路径。
在一些实施例中,所述装置20还包括日志管理模块25,所述日志管理模块25用于将上述处理模块24操作的过程记录下来,比如记录文件操作容器名称、操作事件、操作结果和操作文件名称等。
需要说明的是,上述基于容器的文件管理装置可执行本发明实施例所提供的基于容器的文件管理方法,具备执行方法相应的功能模块和有益效果。未在基于容器的文件管理装置实施例中详尽描述的技术细节,可参见本发明实施例所提供的基于容器的文件管理方法。
请参照图7,图7是一个实施例提供的电子设备30的硬件结构示意图。所述电子设备30包括一个或多个处理器31,以及存储器32,图7中以一个处理器31为例。处理器31和存储器32可以通过总线或其他方式连接,图7中以通过总线连接为例。
存储器31作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的基于容器的文件管理方法对应的程序指令/模块(例如,图6中的各个模块)。处理器31通过运行存储在存储器32中的非易失性软件程序、非易失性计算机可执行程序以及模块,从而执行所述电子设备30的各种功能应用以及数据处理,即实现上述方法实施例中的基于容器的文件管理方法。
存储器32可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据基于容器的文件管理装置的使用所创建的数据等。此外,存储器32可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器32可选包括相对于处理器31远程设置的存储器,这些远程设置的存储器可以通过网络连接至基于容器的文件管理装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或多个模块存储在所述存储器32中,当被所述一个或多个处理器31执行时,执行上述方法实施例中的基于容器的文件管理方法,例如,图1、图3、图5所示的方法。
上述产品可执行本发明实施例所提供的基于容器的文件管理方法,具备执行基于容器的文件管理方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的基于容器的文件管理方法。
本发明实施例的电子设备30可以以多种形式存在,包括但不限于服务器、服务器集群、云服务器等其他具有数据交互功能的电子装置。
本发明实施例还提供了一种非易失性计算机存储介质,所述非易失性计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图7中的一个处理器31,可使得上述一个或多个处理器可执行上述任意方法实施例中的基于容器的文件管理方法。
本发明实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被所述电子设备执行时,使所述电子设备执行上述实施例中的基于容器的文件管理方法。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (9)
1.一种基于容器的文件管理方法,所述方法应用于电子设备,其特征在于,所述电子设备部署有主容器和至少一从容器,所述主容器用于访问宿主机文件,所述至少一从容器与所述主容器通讯连接,所述方法包括:
控制所述主容器监听所述至少一从容器发送的文件请求消息;
在监听到所述从容器发送的文件请求消息时,对所述文件请求消息进行权限认证;
在所述权限认证通过后,控制所述主容器执行所述文件请求消息对应的操作;
所述方法还包括部署所述主容器和所述至少一从容器的步骤,
所述部署所述主容器和所述至少一从容器的步骤包括:
创建一文件管理应用程序,并将所述文件管理应用程序打包至容器中,以生成主容器;
创建当前实际应用业务对应的至少一应用程序,并将所述至少一应用程序打包至容器中,以生成至少一从容器;
设置所述主容器和所述从容器访问所述宿主机文件的权限;
设置所述主容器和所述从容器的启动顺序。
2.根据权利要求1所述的方法,其特征在于,所述对所述文件请求消息进行权限认证包括:
验证所述从容器是否具备文件操作权限,以及待操作的文件是否具备所述文件请求消息所请求的权限。
3.根据权利要求1或2所述的方法,其特征在于,所述控制所述主容器执行所述文件请求消息对应的操作,包括:
在所述文件请求消息为读文件操作时,控制所述主容器获取所述文件请求消息对应的宿主机文件,并向发送所述文件请求消息的所述从容器返回所述宿主机文件。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述宿主机文件为加密储存时,控制所述主容器对获得的所述宿主机文件执行解密操作,并向发送所述文件请求消息的所述从容器返回解密后的所述宿主机文件。
5.根据权利要求3所述的方法,其特征在于,所述向发送所述文件请求消息的所述从容器返回所述宿主机文件,包括:
根据所述宿主机文件的大小,从所述宿主机文件中获取所述从容器所需的文件块,并向所述从容器返回所述文件块。
6.根据权利要求1或2所述的方法,其特征在于,所述控制所述主容器执行所述文件请求消息对应的操作,包括:
在所述文件请求消息为写文件操作时,控制所述主容器获取所述文件请求消息对应的待写入文件,并将所述待写入文件保存至所述主容器在宿主机的挂载路径。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
判断所述待写入文件是否加密储存;
若是,控制所述主容器对所述待写入文件进行加密操作,获得文件密文,并将所述文件密文保存至所述主容器在宿主机的挂载路径。
8.根据权利要求7所述的方法,其特征在于,所述控制所述主容器对所述待写入文件进行加密操作,获得文件密文,并将所述文件密文保存至所述主容器在宿主机的挂载路径,包括:
获取所述从容器对应的原始宿主机文件,比较所述原始宿主机文件和所述待写入文件,获得更改部分的文件内容;
控制所述主容器将所述更改部分的文件内容写入所述原始宿主机文件,并进行整体加密,获得整体加密后的文件密文;
将所述文件密文保存至所述主容器在宿主机的挂载路径。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110004983.6A CN112732403B (zh) | 2021-01-04 | 2021-01-04 | 一种基于容器的文件管理方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110004983.6A CN112732403B (zh) | 2021-01-04 | 2021-01-04 | 一种基于容器的文件管理方法和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112732403A CN112732403A (zh) | 2021-04-30 |
CN112732403B true CN112732403B (zh) | 2022-09-30 |
Family
ID=75590915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110004983.6A Active CN112732403B (zh) | 2021-01-04 | 2021-01-04 | 一种基于容器的文件管理方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112732403B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113076170B (zh) * | 2021-06-03 | 2021-09-17 | 统信软件技术有限公司 | 一种远程协助方法、系统、装置、计算设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9939981B2 (en) * | 2013-09-12 | 2018-04-10 | Commvault Systems, Inc. | File manager integration with virtualization in an information management system with an enhanced storage manager, including user control and storage management of virtual machines |
US10678935B2 (en) * | 2017-04-11 | 2020-06-09 | Nicira, Inc. | Identifying container file events for providing container security |
WO2019149797A1 (en) * | 2018-01-31 | 2019-08-08 | Assa Abloy Ab | Enabling an encrypted software module in a container file |
CN108845917A (zh) * | 2018-04-09 | 2018-11-20 | 东峡大通(北京)管理咨询有限公司 | 容器内文件日志挂载模块、系统和方法 |
CN110012087B (zh) * | 2019-03-28 | 2022-02-01 | 中国工商银行股份有限公司 | 数据处理系统及数据处理方法 |
CN111858509B (zh) * | 2020-07-06 | 2022-11-25 | 苏州浪潮智能科技有限公司 | 一种基于容器的分布式计算方法和装置 |
-
2021
- 2021-01-04 CN CN202110004983.6A patent/CN112732403B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112732403A (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106991035B (zh) | 一种基于微服务架构的主机监控系统 | |
US10601875B2 (en) | Automated multi-level federation and enforcement of information management policies in a device network | |
US10013274B2 (en) | Migrating virtual machines to perform boot processes | |
KR102026225B1 (ko) | 블록 체인을 이용하여 데이터를 관리하는 장치 및 방법 | |
US9059978B2 (en) | System and methods for remote maintenance in an electronic network with multiple clients | |
US10007534B2 (en) | Methods and apparatus to manage asset capabilities in a computing environment using a common agent framework | |
KR102618665B1 (ko) | 블록체인을 사용한 버전 이력 관리 | |
CN108289098B (zh) | 分布式文件系统的权限管理方法和装置、服务器、介质 | |
US20140165134A1 (en) | Automated multi-level federation and enforcement of information management policies in a device network | |
WO2018017602A1 (en) | Distributed key/value store system using asynchronous messaging systems | |
US8370957B2 (en) | Method and apparatus for transmitting contents with limited system permissions | |
CN110390184B (zh) | 用于在云中执行应用的方法、装置和计算机程序产品 | |
US11003435B2 (en) | Manifest trialing techniques | |
CN112732403B (zh) | 一种基于容器的文件管理方法和电子设备 | |
CN110971580A (zh) | 一种权限控制方法及装置 | |
CN110569042B (zh) | 一种支持虚拟机内更新fpga功能的系统,方法,设备及存储介质 | |
CN112751825B (zh) | 基于ssl证书的软件源发布权限控制方法及系统 | |
US20200401389A1 (en) | Selectively installing applications based on manifest files | |
CN114301682A (zh) | 数据处理方法、装置和终端设备 | |
US10334019B2 (en) | Method and associated server for ensuring data security under high access efficiency | |
US20220066845A1 (en) | Dynamic authenticatication an authorization of a containerized process | |
CN117792792A (zh) | 通信系统 | |
CN117093987A (zh) | 涉密集群系统及基于涉密应用保密等级的容器技术利用方法 | |
CN115296883A (zh) | 一种数据安全访问的方法、装置及电子设备 | |
CN118012453A (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 |