CN110888852A - 一种挂载宿主机目录到容器环境中的方法及装置 - Google Patents
一种挂载宿主机目录到容器环境中的方法及装置 Download PDFInfo
- Publication number
- CN110888852A CN110888852A CN201911096089.5A CN201911096089A CN110888852A CN 110888852 A CN110888852 A CN 110888852A CN 201911096089 A CN201911096089 A CN 201911096089A CN 110888852 A CN110888852 A CN 110888852A
- Authority
- CN
- China
- Prior art keywords
- container
- directory
- disk device
- host
- device information
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (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
技术领域
本发明涉及计算机技术领域,具体涉及一种挂载宿主机目录到容器环境中的方法及装置。
背景技术
在目前主流的容器实现方案中,在启动新的容器时可以通过目录挂载参数dockerrun-v/hostpath:/containerpath imagename将宿主机的目录挂载到容器环境中;也可以通过docker cp在宿主机和容器之间拷贝文件目录。
其中,docker cp方案在docker服务挂起、docker基本命令不可用的极端情况下,无法正常使用,导致获取不到诊断问题的关键信息。
另外,docker run方案,只能在容器创建和启动时为容器挂载宿主机目录,无法在容器运行过程中为容器挂载宿主机目录。但是,在容器创建和启动时,是否需要挂载宿主机目录可能尚未确定,而是在容器的运行过程中才会产生挂载宿主机目录的需求。因此,能够实现在容器的运行过程中挂载宿主机目录成为亟待解决的难题。
发明内容
为解决现有技术中的问题,本发明实施例提供一种挂载宿主机目录到容器环境中的方法及装置。
第一方面,本发明实施例提供一种挂载宿主机目录到容器环境中的方法,包括:获取宿主机上的物理磁盘设备信息;获取正在运行的容器的内部进程在所述宿主机上的进程号,并根据所述进程号进入所述容器对应的容器环境中;基于所述物理磁盘设备信息在所述容器内部创建对应的虚拟磁盘设备信息;在所述容器内部,将所述虚拟磁盘设备信息挂载在临时目录下,实现所述临时目录涵盖宿主机目录信息;将所述临时目录下的所述宿主机目录信息挂载到容器目录,实现挂载宿主机目录到所述容器环境。
进一步地,所述获取宿主机上的物理磁盘设备信息,具体包括:根据所述宿主机目录信息获取所述宿主机的所述虚拟磁盘设备信息,根据所述虚拟磁盘设备信息获取所述物理磁盘设备信息。
进一步地,在所述基于所述物理磁盘设备信息在所述容器内部创建对应的虚拟磁盘设备信息之后,所述在所述容器内部,将所述虚拟磁盘设备信息挂载在临时目录下之前,所述方法还包括:在所述容器内部,创建所述临时目录。
进一步地,在所述将所述临时目录下的所述宿主机目录信息挂载到容器目录,实现挂载宿主机目录到容器环境之后,所述方法还包括:卸除所述容器内部的所述临时目录。
进一步地,所述根据所述进程号进入所述容器对应的容器环境中,具体包括:使用nsenter--target pid命令根据所述进程号进入所述容器对应的容器环境中;其中,pid表示所述进程号;所述基于所述物理磁盘设备信息在所述容器内部创建对应的虚拟磁盘设备信息,具体包括:使用mknod命令结合所述物理磁盘设备信息,在所述容器内部创建所述虚拟磁盘设备信息;所述在所述容器内部,将所述虚拟磁盘设备信息挂载在临时目录下,具体包括:在所述容器内部使用mount命令将所述虚拟磁盘设备信息挂载在所述临时目录下;所述将所述临时目录下的所述宿主机目录信息挂载到容器目录,具体包括:使用mount-obind命令挂载所述临时目录下的所述宿主机目录信息到所述容器目录。
进一步地,所述卸除所述容器内部的所述临时目录,具体包括:使用umount命令卸除所述容器内部的所述临时目录。
第二方面,本发明实施例提供一种挂载宿主机目录到容器环境中的装置,包括:宿主机物理磁盘设备信息获取模块,用于获取宿主机上的物理磁盘设备信息;容器环境进入模块,用于获取正在运行的容器的内部进程在所述宿主机上的进程号,并根据所述进程号进入所述容器对应的容器环境中;容器内虚拟磁盘设备信息创建模块,用于基于所述物理磁盘设备信息在所述容器内部创建对应的虚拟磁盘设备信息;第一挂载模块,用于在所述容器内部,将所述虚拟磁盘设备信息挂载在临时目录下,实现所述临时目录涵盖宿主机目录信息;第二挂载模块,用于将所述临时目录下的所述宿主机目录信息挂载到容器目录,实现挂载宿主机目录到所述容器环境。
进一步地,所述宿主机物理磁盘设备信息获取模块具体用于:根据所述宿主机目录信息获取所述宿主机的所述虚拟磁盘设备信息,根据所述虚拟磁盘设备信息获取所述物理磁盘设备信息。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所提供的方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。
本发明实施例提供的挂载宿主机目录到容器环境中的方法及装置,通过获取宿主机的物理磁盘设备信息,进入容器环境后,基于物理磁盘设备信息创建虚拟磁盘设备信息,将虚拟磁盘设备信息先挂载到临时目录下,实现临时目录下宿主机目录信息可见,然后进一步将临时目录下的宿主机目录信息挂载到容器目录,实现了容器运行时映射宿主机目录到容器目录,并且由于可以采用底层命令实现,因此可以在docker服务挂起等情况下稳定运行,为同一宿主机上不同容器之间及宿主机和容器之间共享文件信息提供了便利。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的挂载宿主机目录到容器环境中的方法流程图;
图2是本发明实施例提供的挂载宿主机目录到容器环境中的方法的原理示意图;
图3是本发明实施例提供的挂载宿主机目录到容器环境中的装置的结构示意图;
图4是本发明一实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的挂载宿主机目录到容器环境中的方法流程图。如图1所示,所述方法包括:步骤101、获取宿主机上的物理磁盘设备信息;步骤102、获取正在运行的容器的内部进程在所述宿主机上的进程号,并根据所述进程号进入所述容器对应的容器环境中;步骤103、基于所述物理磁盘设备信息在所述容器内部创建对应的虚拟磁盘设备信息;步骤104、在所述容器内部,将所述虚拟磁盘设备信息挂载在临时目录下,实现所述临时目录涵盖宿主机目录信息;步骤105、将所述临时目录下的所述宿主机目录信息挂载到容器目录,实现挂载宿主机目录到所述容器环境。
挂载宿主机目录到容器环境中的装置获取宿主机上的物理磁盘设备信息,并且获取正在运行的容器的内部进程在所述宿主机上的进程号,根据所述进程号进入所述容器对应的容器环境中(命名空间)。若有多个容器正在运行,则只需获取需要实现挂载宿主机目录到容器环境中目的的进程号即可。挂载宿主机目录到容器环境中的装置可以利用容器命名空间进入命令根据所述进程号进入所述容器的对应的容器环境中。
挂载宿主机目录到容器环境中的装置可以基于所述物理磁盘设备信息,利用虚拟磁盘设备信息创建命令在所述容器内部创建对应的虚拟磁盘设备信息。在所述容器内部,挂载宿主机目录到容器环境中的装置先将虚拟磁盘设备信息挂载在临时目录下,此时在临时目录就可以看到宿主机目录信息,但还可能包括其他容器不需要的目录信息。进一步,挂载宿主机目录到容器环境中的装置将临时目录下的宿主机目录信息挂载到容器目录,实现挂载宿主机目录到容器环境。此时在容器内部的目录中,就可以访问到宿主机目录中的信息。这样就达到把宿主机目录映射到容器目录的目的,宿主机目录中文件的变化,都应反映到容器目录中。
需要说明的是,上述各步骤的顺序可以调整,只要能实现挂载宿主机目录到容器环境中的目的即可。
上述各步骤均可利用底层命令实现,如利用linux底层命令实现,因此,在docker服务挂起、docker基本命令不可用的极端情况下,依然可以进入容器环境,采集关键的环境信息,为诊断问题提供事实依据。
本发明实施例通过获取宿主机的物理磁盘设备信息,进入容器环境后,基于物理磁盘设备信息创建虚拟磁盘设备信息,将虚拟磁盘设备信息先挂载到临时目录下,实现临时目录下宿主机目录信息可见,然后进一步将临时目录下的宿主机目录信息挂载到容器目录,实现了容器运行时映射宿主机目录到容器目录,并且由于可以采用底层命令实现,因此可以在docker服务挂起等情况下稳定运行,为同一宿主机上不同容器之间及宿主机和容器之间共享文件信息提供了便利。
进一步地,基于上述实施例,所述获取宿主机上的物理磁盘设备信息,具体包括:根据所述宿主机目录信息获取所述宿主机的所述虚拟磁盘设备信息,根据所述虚拟磁盘设备信息获取所述物理磁盘设备信息。
虚拟磁盘设备信息和物理磁盘设备信息具有映射关系。获取宿主机上的物理磁盘设备信息的过程可以为:根据所述宿主机目录信息获取所述宿主机的所述虚拟磁盘设备信息,根据所述虚拟磁盘设备信息获取所述物理磁盘设备信息。
在上述实施例的基础上,本发明实施例通过根据宿主机目录信息获取宿主机的虚拟磁盘设备信息,根据虚拟磁盘设备信息获取物理磁盘设备信息,实现了物理磁盘设备信息的可靠获取。
进一步地,基于上述实施例,在所述基于所述物理磁盘设备信息在所述容器内部创建对应的虚拟磁盘设备信息之后,所述在所述容器内部,将所述虚拟磁盘设备信息挂载在临时目录下之前,所述方法还包括:在所述容器内部,创建所述临时目录。
在所述容器内部创建对应的虚拟磁盘设备信息之后,在所述容器内部,新建一个临时目录;然后将虚拟磁盘设备信息挂载在临时目录下,从而实现临时目录下宿主机目录信息可见;以用于后续再将临时目录下的宿主机目录信息挂载到容器目录。
在上述实施例的基础上,本发明实施例通过在容器内部创建临时目录,为将虚拟磁盘设备信息挂载在临时目录下提供了前提。
进一步地,基于上述实施例,在所述将所述临时目录下的所述宿主机目录信息挂载到容器目录,实现挂载宿主机目录到容器环境之后,所述方法还包括:卸除所述容器内部的所述临时目录。
在将临时目录下的宿主机目录信息挂载到容器目录,实现挂载宿主机目录到容器环境之后,临时目录已经不再需要,可以将其卸除。
在上述实施例的基础上,本发明实施例通过在将临时目录下的宿主机目录信息挂载到容器目录,实现挂载宿主机目录到容器环境之后,卸除容器内部的临时目录,节约了空间成本和管理成本。
进一步地,基于上述实施例,所述根据所述进程号进入所述容器的对应的容器环境中,具体包括:使用nsenter--target pid命令根据所述进程号进入所述容器对应的容器环境中;其中,pid表示所述进程号;所述基于所述物理磁盘设备信息在所述容器内部创建对应的虚拟磁盘设备信息,具体包括:使用mknod命令结合所述物理磁盘设备信息,在所述容器内部创建所述虚拟磁盘设备信息;所述在所述容器内部,将所述虚拟磁盘设备信息挂载在临时目录下,具体包括:在所述容器内部使用mount命令将所述虚拟磁盘设备信息挂载在所述临时目录下;所述将所述临时目录下的所述宿主机目录信息挂载到容器目录,具体包括:使用mount-o bind命令挂载所述临时目录下的所述宿主机目录信息到所述容器目录。
在根据所述进程号进入所述容器对应的容器环境时,通过使用nsenter--targetpid命令根据所述进程号进入所述容器对应的容器环境;其中,pid表示所述进程号。
在基于所述物理磁盘设备信息在所述容器内部创建对应的虚拟磁盘设备信息时,通过使用mknod命令结合所述物理磁盘设备信息,在所述容器内部创建所述虚拟磁盘设备信息。
在将所述虚拟磁盘设备信息挂载在临时目录下时,通过在所述容器内部使用mount命令将所述虚拟磁盘设备信息挂载在所述临时目录下。
在将所述临时目录下的所述宿主机目录信息挂载到容器目录时,通过使用mount-o bind命令挂载所述临时目录下的所述宿主机目录信息到所述容器目录。
在上述实施例的基础上,本发明实施例通过利用linux底层命令分别实现了容器环境进入、虚拟磁盘设备信息创建、挂载虚拟磁盘设备信息到临时目录以及挂载宿主机目录信息到容器目录,可以在docker服务挂起、docker基本命令不可用的极端情况下,依然可以进入容器环境,采集关键的环境信息,为诊断问题提供事实依据,提高了可靠性和实用性。
进一步地,基于上述实施例,所述卸除所述容器内部的所述临时目录,具体包括:使用umount命令卸除所述容器内部的所述临时目录。
在所述卸除所述容器内部的所述临时目录时,可以使用umount命令卸除所述容器内部的所述临时目录。
在上述实施例的基础上,本发明实施例通过使用umount命令卸除容器内部的临时目录,实现了临时目录的快速卸除。
图2是本发明实施例提供的挂载宿主机目录到容器环境中的方法的原理示意图。下面结合图2再给出一具体实施例。本发明实施例提供的挂载宿主机目录到容器环境中的方法包括以下步骤:
1.根据宿主机目录信息/hostpath获取宿主机的虚拟磁盘设备信息devinfo,进而获取宿主机上的物理磁盘设备信息diskinfo;
2.获取正在运行容器内部进程在宿主机上的进程号pid;
3.使用nsenter--target pid命令进入pid对应容器内的命名空间中;
4.容器内部的文件系统和宿主机上的文件系统是互相独立的,是无法直接访问宿主机目录信息的;在容器内部使用mknod命令结合物理磁盘设备信息diskinfo,在容器内部创建虚拟磁盘设备信息devinfo;
5.在容器内部使用mount命令把虚拟磁盘设备信息devinfo挂载在临时目录下/tmp/path,此时在临时目录/tmp/path就可以看到宿主机目录信息/hostpath;
6.使用mount-o bind命令挂载临时目录下的宿主机目录信息/tmp/path/hostpath到容器目录/containerpath,此时在容器内部的目录/containerpath中,就可以访问到宿主机目录/hostpath中的信息;
7.容器内部的临时目录/tmp/path,已经不再需要,使用umount命令卸除;
8.这样就达到把宿主机目录/hostpath映射到容器目录/containerpath的目的,对于宿主机目录/hostpath中文件的变化,都应反映到容器目录/containerpath中。
图3是本发明实施例提供的挂载宿主机目录到容器环境中的装置的结构示意图。如图3所示,所述装置包括宿主机物理磁盘设备信息获取模块10、容器环境进入模块20、容器内虚拟磁盘设备信息创建模块30、第一挂载模块40及第二挂载模块50,其中:宿主机物理磁盘设备信息获取模块10用于获取宿主机上的物理磁盘设备信息;容器环境进入模块20用于获取正在运行的容器的内部进程在所述宿主机上的进程号,并根据所述进程号进入所述容器对应的容器环境中;容器内虚拟磁盘设备信息创建模块30用于基于所述物理磁盘设备信息在所述容器内部创建对应的虚拟磁盘设备信息;第一挂载模块40用于在所述容器内部,将所述虚拟磁盘设备信息挂载在临时目录下,实现所述临时目录涵盖宿主机目录信息;第二挂载模块50用于将所述临时目录下的所述宿主机目录信息挂载到容器目录,实现挂载宿主机目录到所述容器环境。
本发明实施例通过获取宿主机的物理磁盘设备信息,进入容器环境后,基于物理磁盘设备信息创建虚拟磁盘设备信息,将虚拟磁盘设备信息先挂载到临时目录下,实现临时目录下宿主机目录信息可见,然后进一步将临时目录下的宿主机目录信息挂载到容器目录,实现了容器运行时映射宿主机目录到容器目录,并且由于可以采用底层命令实现,因此可以在docker服务挂起等情况下稳定运行,为同一宿主机上不同容器之间及宿主机和容器之间共享文件信息提供了便利。
进一步地,基于上述实施例,所述宿主机物理磁盘设备信息获取模块10具体用于:根据所述宿主机目录信息获取所述宿主机的所述虚拟磁盘设备信息,根据所述虚拟磁盘设备信息获取所述物理磁盘设备信息。
在上述实施例的基础上,本发明实施例通过根据宿主机目录信息获取宿主机的虚拟磁盘设备信息,根据虚拟磁盘设备信息获取物理磁盘设备信息,实现了物理磁盘设备信息的可靠获取。
进一步地,基于上述实施例,所述装置还包括临时目录创建模块,所述临时目录创建模块用于在容器内虚拟磁盘设备信息创建模块30基于所述物理磁盘设备信息在所述容器内部创建对应的虚拟磁盘设备信息之后,在第一挂载模块40在所述容器内部,将所述虚拟磁盘设备信息挂载在临时目录下之前,在所述容器内部,创建所述临时目录。
在上述实施例的基础上,本发明实施例通过在容器内部创建临时目录,为将虚拟磁盘设备信息挂载在临时目录下提供了前提。
进一步地,基于上述实施例,所述装置还包括临时目录卸除模块,用于:在第二挂载模块50将所述临时目录下的所述宿主机目录信息挂载到容器目录,实现挂载宿主机目录到容器环境之后,卸除所述容器内部的所述临时目录。
在上述实施例的基础上,本发明实施例通过在将临时目录下的宿主机目录信息挂载到容器目录,实现挂载宿主机目录到容器环境之后,卸除容器内部的临时目录,节约了空间成本和管理成本。
进一步地,基于上述实施例,容器环境进入模块20在用于根据所述进程号进入所述容器对应的容器环境时,具体用于:使用nsenter--target pid命令根据所述进程号进入所述容器对应的容器环境;其中,pid表示所述进程号;容器内虚拟磁盘设备信息创建模块30具体用于:使用mknod命令结合所述物理磁盘设备信息,在所述容器内部创建所述虚拟磁盘设备信息;第一挂载模块40具体用于:在所述容器内部使用mount命令将所述虚拟磁盘设备信息挂载在所述临时目录下;第二挂载模块50具体用于:使用mount-o bind命令挂载所述临时目录下的所述宿主机目录信息到所述容器目录。
在上述实施例的基础上,本发明实施例通过利用linux底层命令分别实现了容器环境进入、虚拟磁盘设备信息创建、挂载虚拟磁盘设备信息到临时目录以及挂载宿主机目录信息到容器目录,可以在docker服务挂起、docker基本命令不可用的极端情况下,依然可以进入容器环境,采集关键的环境信息,为诊断问题提供事实依据,提高了可靠性和实用性。
进一步地,基于上述实施例,所述临时目录卸除模块具体用于使用umount命令卸除所述容器内部的所述临时目录。
在上述实施例的基础上,本发明实施例通过使用umount命令卸除容器内部的临时目录,实现了临时目录的快速卸除。
本发明实施例提供的装置是用于上述方法的,具体功能可参照上述方法流程,此处不再赘述。
图4是本发明一实施例提供的电子设备的实体结构示意图。如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行如下方法:获取宿主机上的物理磁盘设备信息;获取正在运行的容器的内部进程在所述宿主机上的进程号,并根据所述进程号进入所述容器对应的容器环境中;基于所述物理磁盘设备信息在所述容器内部创建对应的虚拟磁盘设备信息;在所述容器内部,将所述虚拟磁盘设备信息挂载在临时目录下,实现所述临时目录涵盖宿主机目录信息;将所述临时目录下的所述宿主机目录信息挂载到容器目录,实现挂载宿主机目录到所述容器环境。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法,例如包括:获取宿主机上的物理磁盘设备信息;获取正在运行的容器的内部进程在所述宿主机上的进程号,并根据所述进程号进入所述容器对应的容器环境中;基于所述物理磁盘设备信息在所述容器内部创建对应的虚拟磁盘设备信息;在所述容器内部,将所述虚拟磁盘设备信息挂载在临时目录下,实现所述临时目录涵盖宿主机目录信息;将所述临时目录下的所述宿主机目录信息挂载到容器目录,实现挂载宿主机目录到所述容器环境。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种挂载宿主机目录到容器环境中的方法,其特征在于,包括:
获取宿主机上的物理磁盘设备信息;
获取正在运行的容器的内部进程在所述宿主机上的进程号,并根据所述进程号进入所述容器对应的容器环境中;
基于所述物理磁盘设备信息在所述容器内部创建对应的虚拟磁盘设备信息;
在所述容器内部,将所述虚拟磁盘设备信息挂载在临时目录下,实现所述临时目录涵盖宿主机目录信息;
将所述临时目录下的所述宿主机目录信息挂载到容器目录,实现挂载宿主机目录到所述容器环境。
2.根据权利要求1所述的挂载宿主机目录到容器环境中的方法,其特征在于,所述获取宿主机上的物理磁盘设备信息,具体包括:
根据所述宿主机目录信息获取所述宿主机的所述虚拟磁盘设备信息,根据所述虚拟磁盘设备信息获取所述物理磁盘设备信息。
3.根据权利要求1所述的挂载宿主机目录到容器环境中的方法,其特征在于,在所述基于所述物理磁盘设备信息在所述容器内部创建对应的虚拟磁盘设备信息之后,所述在所述容器内部,将所述虚拟磁盘设备信息挂载在临时目录下之前,所述方法还包括:
在所述容器内部,创建所述临时目录。
4.根据权利要求1所述的挂载宿主机目录到容器环境中的方法,其特征在于,在所述将所述临时目录下的所述宿主机目录信息挂载到容器目录,实现挂载宿主机目录到容器环境之后,所述方法还包括:
卸除所述容器内部的所述临时目录。
5.根据权利要求1所述的挂载宿主机目录到容器环境中的方法,其特征在于,所述根据所述进程号进入所述容器对应的容器环境中,具体包括:使用nsenter--target pid命令根据所述进程号进入所述容器对应的容器环境中;其中,pid表示所述进程号;
所述基于所述物理磁盘设备信息在所述容器内部创建对应的虚拟磁盘设备信息,具体包括:使用mknod命令结合所述物理磁盘设备信息,在所述容器内部创建所述虚拟磁盘设备信息;
所述在所述容器内部,将所述虚拟磁盘设备信息挂载在临时目录下,具体包括:在所述容器内部使用mount命令将所述虚拟磁盘设备信息挂载在所述临时目录下;
所述将所述临时目录下的所述宿主机目录信息挂载到容器目录,具体包括:使用mount-o bind命令挂载所述临时目录下的所述宿主机目录信息到所述容器目录。
6.根据权利要求4所述的挂载宿主机目录到容器环境中的方法,其特征在于,所述卸除所述容器内部的所述临时目录,具体包括:
使用umount命令卸除所述容器内部的所述临时目录。
7.一种挂载宿主机目录到容器环境中的装置,其特征在于,包括:
宿主机物理磁盘设备信息获取模块,用于获取宿主机上的物理磁盘设备信息;
容器环境进入模块,用于获取正在运行的容器的内部进程在所述宿主机上的进程号,并根据所述进程号进入所述容器对应的容器环境中;
容器内虚拟磁盘设备信息创建模块,用于基于所述物理磁盘设备信息在所述容器内部创建对应的虚拟磁盘设备信息;
第一挂载模块,用于在所述容器内部,将所述虚拟磁盘设备信息挂载在临时目录下,实现所述临时目录涵盖宿主机目录信息;
第二挂载模块,用于将所述临时目录下的所述宿主机目录信息挂载到容器目录,实现挂载宿主机目录到所述容器环境。
8.根据权利要求7所述的挂载宿主机目录到容器环境中的装置,其特征在于,所述宿主机物理磁盘设备信息获取模块具体用于:
根据所述宿主机目录信息获取所述宿主机的所述虚拟磁盘设备信息,根据所述虚拟磁盘设备信息获取所述物理磁盘设备信息。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述挂载宿主机目录到容器环境中的方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至6任一项所述挂载宿主机目录到容器环境中的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911096089.5A CN110888852A (zh) | 2019-11-11 | 2019-11-11 | 一种挂载宿主机目录到容器环境中的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911096089.5A CN110888852A (zh) | 2019-11-11 | 2019-11-11 | 一种挂载宿主机目录到容器环境中的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110888852A true CN110888852A (zh) | 2020-03-17 |
Family
ID=69747240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911096089.5A Pending CN110888852A (zh) | 2019-11-11 | 2019-11-11 | 一种挂载宿主机目录到容器环境中的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110888852A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112084003A (zh) * | 2020-08-17 | 2020-12-15 | 北京字节跳动网络技术有限公司 | 一种隔离数据的方法、装置、介质和电子设备 |
CN112527418A (zh) * | 2020-12-11 | 2021-03-19 | 杭州安恒信息技术股份有限公司 | 一种npm包获取方法、装置、电子设备和存储介质 |
CN112799740A (zh) * | 2021-02-08 | 2021-05-14 | 联想(北京)有限公司 | 一种控制方法、装置及电子设备 |
CN112905537A (zh) * | 2021-02-20 | 2021-06-04 | 北京百度网讯科技有限公司 | 文件处理方法、装置、电子设备和存储介质 |
CN112965761A (zh) * | 2021-03-10 | 2021-06-15 | 中国民航信息网络股份有限公司 | 一种数据处理方法、系统、电子设备及存储介质 |
CN113076170A (zh) * | 2021-06-03 | 2021-07-06 | 统信软件技术有限公司 | 一种远程协助方法、系统、装置、计算设备及存储介质 |
CN113190325A (zh) * | 2021-04-09 | 2021-07-30 | 大唐微电子技术有限公司 | 一种容器创建方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109274722A (zh) * | 2018-08-24 | 2019-01-25 | 北京北信源信息安全技术有限公司 | 数据共享方法、装置以及电子设备 |
CN110276194A (zh) * | 2019-06-21 | 2019-09-24 | 联想(北京)有限公司 | 信息处理方法、信息处理装置和电子设备 |
-
2019
- 2019-11-11 CN CN201911096089.5A patent/CN110888852A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109274722A (zh) * | 2018-08-24 | 2019-01-25 | 北京北信源信息安全技术有限公司 | 数据共享方法、装置以及电子设备 |
CN110276194A (zh) * | 2019-06-21 | 2019-09-24 | 联想(北京)有限公司 | 信息处理方法、信息处理装置和电子设备 |
Non-Patent Citations (2)
Title |
---|
ILOVEMILK: "docker容器工具nsenter", 《HTTPS://BLOG.CSDN.NET/ILOVEMILK/ARTICLE/DETAILS/80239489》 * |
LARRYHAI6: "给一个正在运行的Docker容器动态添加Volume", 《HTTPS://BLOG.CSDN.NET/U011537073/ARTICLE/DETAILS/69663728》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112084003A (zh) * | 2020-08-17 | 2020-12-15 | 北京字节跳动网络技术有限公司 | 一种隔离数据的方法、装置、介质和电子设备 |
CN112084003B (zh) * | 2020-08-17 | 2024-05-24 | 北京火山引擎科技有限公司 | 一种隔离数据的方法、装置、介质和电子设备 |
CN112527418A (zh) * | 2020-12-11 | 2021-03-19 | 杭州安恒信息技术股份有限公司 | 一种npm包获取方法、装置、电子设备和存储介质 |
CN112799740A (zh) * | 2021-02-08 | 2021-05-14 | 联想(北京)有限公司 | 一种控制方法、装置及电子设备 |
CN112799740B (zh) * | 2021-02-08 | 2022-07-26 | 联想(北京)有限公司 | 一种控制方法、装置及电子设备 |
CN112905537A (zh) * | 2021-02-20 | 2021-06-04 | 北京百度网讯科技有限公司 | 文件处理方法、装置、电子设备和存储介质 |
CN112905537B (zh) * | 2021-02-20 | 2022-09-02 | 北京百度网讯科技有限公司 | 文件处理方法、装置、电子设备和存储介质 |
CN112965761A (zh) * | 2021-03-10 | 2021-06-15 | 中国民航信息网络股份有限公司 | 一种数据处理方法、系统、电子设备及存储介质 |
CN112965761B (zh) * | 2021-03-10 | 2023-10-10 | 中国民航信息网络股份有限公司 | 一种数据处理方法、系统、电子设备及存储介质 |
CN113190325A (zh) * | 2021-04-09 | 2021-07-30 | 大唐微电子技术有限公司 | 一种容器创建方法及装置 |
CN113076170A (zh) * | 2021-06-03 | 2021-07-06 | 统信软件技术有限公司 | 一种远程协助方法、系统、装置、计算设备及存储介质 |
CN113076170B (zh) * | 2021-06-03 | 2021-09-17 | 统信软件技术有限公司 | 一种远程协助方法、系统、装置、计算设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110888852A (zh) | 一种挂载宿主机目录到容器环境中的方法及装置 | |
EP4013000A1 (en) | Cloud service processing method and device, cloud server, cloud service system and storage medium | |
CN104750555A (zh) | 一种Android程序中的进程管理方法和装置 | |
CN111897558A (zh) | 容器集群管理系统Kubernetes升级方法和装置 | |
CN104915226A (zh) | 一种网络设备软件启动方法、装置及网络设备 | |
CN111782339A (zh) | 一种容器创建方法、装置、电子设备及存储介质 | |
CN108196940A (zh) | 删除容器的方法和相关设备 | |
CN107566518A (zh) | 在安装文件过程中管理设备信息的方法和装置 | |
CN112087516A (zh) | 基于Docker虚拟化技术的存储升级方法和装置 | |
CN112230847A (zh) | 一种监控K8s存储卷的方法、系统、终端及存储介质 | |
CN112468545A (zh) | 一种云主机创建方法、装置、系统、设备及可读存储介质 | |
CN112328363B (zh) | 一种云硬盘挂载方法及其装置 | |
CN112286559A (zh) | 一种车载智能终端的升级方法及装置 | |
CN104461757A (zh) | 一种恢复虚拟机的方法及装置 | |
US9176974B1 (en) | Low priority, multi-pass, server file discovery and management | |
CN111352726A (zh) | 一种基于容器化微服务的流数据处理方法及装置 | |
CN111459403B (zh) | 一种存储硬件管理方法及装置 | |
CN104111862A (zh) | 云计算平台中获取虚拟机ip地址方法与系统 | |
CN110308914B (zh) | 升级处理方法、装置、设备、系统及计算机可读存储介质 | |
CN113746676B (zh) | 基于容器集群的网卡管理方法、装置、设备、介质及产品 | |
CN109117243B (zh) | 业务部署方法、装置、客户端设备及计算机可读存储介质 | |
CN115658332A (zh) | 一种gpu共享方法及装置、电子设备和存储介质 | |
CN109522092A (zh) | 一种云管平台纳管虚拟机方法和装置 | |
US9798571B1 (en) | System and method for optimizing provisioning time by dynamically customizing a shared virtual machine | |
CN113608767A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200317 |