CN107797845A - 用于访问容器的方法和装置 - Google Patents
用于访问容器的方法和装置 Download PDFInfo
- Publication number
- CN107797845A CN107797845A CN201610806797.3A CN201610806797A CN107797845A CN 107797845 A CN107797845 A CN 107797845A CN 201610806797 A CN201610806797 A CN 201610806797A CN 107797845 A CN107797845 A CN 107797845A
- Authority
- CN
- China
- Prior art keywords
- container
- target
- driving
- target container
- driving example
- 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
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
-
- 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
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/45579—I/O management, e.g. providing access to device drivers or storage
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种用于访问容器的方法和装置,该方法包括:接收容器访问请求,所述容器访问请求用于请求访问目标容器;从当前运行的多个驱动实例中选取所述目标容器对应的驱动实例,所述多个驱动实例中的不同驱动实例用于驱动不同类型的容器,所述多个驱动实例通过相同的程序进行管理;向所述目标容器对应的驱动实例发送所述容器访问请求。在该方案中,通过一个程序管理用于驱动不同类型的容器的驱动实例,使得用户通过一个程序可以访问多个不同类型的容器,避免了现有技术中,通过不同的程序管理的不同的驱动实例,访问不同类型的容器,减少容器引擎中管理多个驱动实例的程序的运行开销。
Description
技术领域
本发明实施例涉及计算机领域,尤其涉及一种用于访问容器的方法和装置。
背景技术
容器引擎可以用于对容器进行管理,用户可以通过一个容器引擎运行多种类型的容器,例如,Linux容器和容器虚拟机等。然而,在通过一个容器引擎管理多种不同类型的容器时,需要通过不同的程序管理用于驱动不同类型的容器的驱动实例,此时,会增加容器引擎中的管理用于驱动不同类型的容器的驱动实例的程序的运行开销。下面以容器引擎Docker为例具体介绍。
Docker是一个开源的容器引擎,旨在提供一种应用的自动化部署解决方案。它在Linux容器技术的基础上,结合多种技术和创新,使得容器的应用变得非常方便和高效,它提出的镜像(image)和镜像仓库等概念,使得可以方便地对应用进行建立、运行、移动,并衍生出了周边生态系统,极大的减少了应用在部署和分发上的工作量和复杂度。Docker极大的推动了Linux容器技术的发展,成为近些年Linux容器技术应用的标杆和事实上的业界标准。
图1示出了Docker架构的示意性框图。从图1所示的Docker架构中可以看出,在启动Docker守护程序(Daemon)时,需要指定容器的执行驱动(execution driver)的类型,也就是说,需要从本地/容器(Native/run container,Native/runc)驱动实例(即Docker默认的驱动实例)和Linux容器(Linux Container,LXC)驱动实例中选择一个执行驱动,图1仅以选择Native/runc的驱动实例为例进行说明。选择Native/runc的驱动实例之后,对Native/runc的驱动实例进行初始化,在之后运行的所有容器都是由Native/runc的驱动实例进行驱动,并且Native/runc的驱动实例只能驱动与Native/runc的驱动实例对应的一种类型的容器。也就是说,由于Docker Daemon和execution driver属于“强绑定”关系,使得在一台主机的一个Docker Daemon上只能运行一种类型的容器,当需要运行其他类型的容器时,则需要再运行一个Docker Deamon。此时,会增加Docker中Docker Daemon的运行开销。
发明内容
本申请提供一种用于访问容器的方法和装置,以减少容器引擎中管理用于驱动不同类型的容器的驱动实例的程序的运行开销,例如,在Docker中,可以减少Docker Daemon的运行开销。
第一方面,提供一种用于访问容器的方法,包括:接收容器访问请求,例如,该容器访问请求可以是Docker客户端(Client)发送的,所述容器访问请求用于请求访问目标容器;从当前运行的多个驱动实例中选取所述目标容器对应的驱动实例,所述多个驱动实例中的不同驱动实例用于驱动不同类型的容器,所述多个驱动实例通过相同的程序管理,例如,该多个驱动实例均通过Docker守护程序Daemon管理;向所述目标容器对应的驱动实例发送所述容器访问请求。
具体地,上述多个驱动实例中的每个驱动实例对应一种驱动程序,不同的驱动程序用于驱动不同类型的容器。
需要说明的是,该方法可以由路由器(router)执行,该路由器可以设置在execution driver中,用于对用户发送的容器访问请求进行调度。
应理解,上述多个驱动实例通过相同的程序管理,可以指上述多个驱动实例通过相同的守护程序管理,该守护程序可以是操作系统中的后台服务进程。例如,在Docker中可以是Docker Daemon。
在该方案中,通过一个程序管理用于驱动不同类型的容器的驱动实例,使得用户通过一个程序可以访问多个不同类型的容器,避免了现有技术中,通过不同的程序管理的不同的驱动实例,访问不同类型的容器,减少容器引擎中管理多个驱动实例的程序的运行开销。
进一步地,当上述容器引擎为Docker时,在该方案中,可以通过一个DockerDaemon管理用于驱动不同类型的容器的驱动实例,使得用户通过一个Docker Daemon可以访问多个不同类型的容器,避免了现有技术中,通过不同的Docker Daemon管理的不同的驱动实例,访问不同类型的容器,减少Docker系统中Docker Daemon的运行开销。
并且,通过一个Docker Daemon,使用一套Docker应用程序编程接口(ApplicationProgramming Interface,API)可以对多种类型的容器进行访问,可以提高通过DockerDaemon访问容器的灵活性。
可选地,上述接收容器访问请求,还包括:通过Docker Daemon接收Docker客户端(Client)发送的所述容器访问请求。
具体地,当router所在的execution driver与Docker Daemon为两个相互独立的进程时,router可以通过Docker Daemon接收容器访问请求。
在该方案中,通过将router所在的execution driver与Docker Daemon解耦为两个相互独立的进程,便于后续使用过程中对execution driver与Docker Daemon的维护。
结合第一方面,在第一方面的一种可能的实现方式中,所述方法还包括:接收容器运行请求,例如,该容器访问请求可以是Docker Client发送的,所述容器运行请求携带所述目标容器对应的驱动实例的类型;根据所述目标容器对应的驱动实例的类型,从所述多个驱动实例中确定所述目标容器对应的驱动实例;向所述目标容器对应的驱动实例发送所述容器运行请求。
在该方案中,通过一个程序管理用于驱动不同类型的容器的驱动实例,使得用户通过一个程序可以运行多个不同类型的容器,避免了现有技术中,通过不同的程序管理不同的驱动实例,运行不同类型的容器,减少容器引擎中管理多个驱动实例的程序的运行开销。
进一步地,当上述容器引擎为Docker时,在该方案中,通过一个Docker Daemon管理用于驱动不同容器类型的驱动实例,使得用户通过一个Docker Daemon可以运行多个不同类型的容器,避免了现有技术中,通过不同的Docker Daemon管理的不同的驱动实例,运行不同类型的容器,减少Docker系统中Docker Daemon的运行开销。
并且,通过一个Docker Daemon,使用一套Docker应用程序编程接口(ApplicationProgramming Interface,API)可以运行多种类型的容器,提高通过Docker Daemon管理容器的灵活性。
可选地,所述接收容器访问请求,包括:接收所述容器访问请求,所述容器访问请求携带所述目标容器的容器IP;所述从当前运行的多个驱动实例中选取所述目标容器对应的驱动实例,包括:根据所述目标容器的容器IP,从所述多个驱动实例中选取所述目标容器对应的驱动实例。
在该方案中,通过在容器访问请求中携带目标容器的容器IP,根据该目标容器的容器IP,以对目标容器进行访问。
结合第一方面或上述任一种可能的实现方式,在第一方面的一种可能的实现方式中,所述接收容器访问请求,包括:接收所述容器访问请求,所述容器访问请求携带所述目标容器的容器ID;所述从当前运行的多个驱动实例中选取所述目标容器对应的驱动实例,包括:根据所述目标容器的容器ID,从所述多个驱动实例中选取所述目标容器对应的驱动实例。
具体地,驱动实例可以根据容器访问请求中携带的目标容器的容器ID,确定该容器访问请求访问的目标容器,该驱动实例将该容器访问请求发送至目标容器。
在该方案中,通过在容器访问请求中携带目标容器的容器ID,根据容器ID确定该容器访问请求访问的目标容器,以便用户访问目标容器。
可选地,上述容器访问请求可以携带目标容器的容器ID和目标容器的容器类型,可以根据目标容器的容器类型,从上述多个驱动实例中选取目标容器对应的驱动实例。
具体地,驱动实例可以根据容器ID确定该容器访问请求需要访问的目标容器,该驱动实例将该容器访问请求发送至该目标容器。
在该方案中,通过在容器访问请求中携带目标容器的容器类型和容器ID,对目标容器进行访问,与在容器访问请求中仅携带目标容器的容器ID的实施例相比,节省了在容器引擎(例如,Docker)中存储容器ID与容器类型的映射关系(或容器ID和容器类型的映射关系)的存储空间。
结合第一方面或上述任一种可能的实现方式,在第一方面的一种可能的实现方式中,所述根据所述目标容器的容器ID,从所述多个驱动实例中选取所述目标容器对应的驱动实例,包括:根据所述目标容器的容器ID,以及容器ID与容器类型的映射关系,确定所述目标容器的容器类型;根据所述目标容器的容器类型,以及容器类型与驱动实例的类型的映射关系,从所述多个驱动实例中选取所述目标容器对应的驱动实例。
在该方案中,通过容器ID与容器类型的映射关系,和容器类型与驱动实例的类型的映射关系,确定目标容器对应的驱动实例,以便用户通过该目标容器对应的驱动实例访问目标容器。
结合第一方面或上述任一种可能的实现方式,在第一方面的一种可能的实现方式中,所述根据所述目标容器的容器ID,从所述多个驱动实例中选取所述目标容器对应的驱动实例,包括:根据所述目标容器的容器ID,以及容器ID与驱动实例的类型的映射关系,从所述多个驱动实例中选取所述目标容器对应的驱动实例。
在该方案中,通过容器ID与驱动实例的类型的映射关系,确定目标容器对应的驱动实例,以便用户通过该目标容器对应的驱动实例访问目标容器。
第二方面中,提供一种用于访问容器的装置,所述装置包括用于执行第一方面中的方法的模块。
第三方面,本申请提供一种用于访问容器的装置,所述装置包括:存储器、处理器、输入/输出接口、通信接口和总线系统。其中,存储器、处理器、输入/输出接口和通信接口通过总线系统相连,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,当所述指令被执行时,所述处理器通过所述通信接口执行第一方面的方法,并控制输入/输出接口接收输入的数据和信息,输出操作结果等数据。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质用于存储发送搜索请求的方法的程序代码,所述程序代码用于执行第一方面中的方法指令。
在某些实现方式中,上述驱动实例可以是execution driver中的驱动子模块。
在某些实现方式中,上述多个驱动实例通过相同的程序管理,可以包括该多个驱动实例通过相同的进程管理。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了Docker架构的示意性框图。
图2示出了根据本发明实施例的用于访问容器的方法的Docker系统架构的示意性框图。
图3示出了根据本发明实施例的另一用于访问容器的方法的Docker系统架构的示意性框图。
图4示出了根据本发明实施的用于访问容器的方法的示意性流程图。
图5示出了根据本发明实施例的用于访问容器的装置的示意性框图。
图6示出了根据本发明另一实施例的用于访问容器的装置的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
Docker架构中的LXC技术是一种轻量级虚拟化技术,它的原理是基于操作系统的内核对不同的运行进程提供了不同的系统视图。这种隔离可以用于在保证安全性和效率的情况下授权访问硬件资源。目前,LXC通过使用内核的命名空间(namespace)进行隔离,也就是说,实际上多个LXC仍然共享一份内核,跟传统虚拟化技术相比,LXC技术虽然损耗更小,性能更高,但同时存在隔离性和安全性不足的缺点。在为一些对安全性要求较高的应用提供服务时,LXC无法满足应用对于安全性的需求。
所以在为对安全性较高的应用提供服务时,可以选择容器虚拟机,其本质是使用传统的虚拟化技术,如虚拟操作系统模拟器(QEMU),结合Docker生态中的镜像、仓库等应用,使得可以像使用LXC一样使用虚拟机。由于虚拟机可以为用户提供包括内核在内的一个完整的系统镜像,相对于LXC可以满足一些应用较高的安全性需求。
因此,可以根据不同应用的安全性需求,为应用选择容器或者容器虚拟机。为了解决现有技术中Docker Daemon一次只能运行一种驱动实例,而导致无法在通过一个DockerDaemon运行、访问不同种类的容器的问题,本发明实施例提出一种由Docker Daemon对不同类型的驱动实例进行管理的思想,以实现在通过一个Docker Daemon运行、访问不同种类的容器的方案。
为了便于理解,先结合图2,简单介绍根据本发明实施例的用于访问容器的方法的Docker系统架构的示意性框图。在图2所示的客户端可以是Docker Client,守护程序可以是Docker Daemon,执行驱动程序可以是execution driver,其中,execution driver中包括不同类型的驱动实例。
应理解,图2中仅以Native/runc、LXC、runv作为具体的驱动实例进行说明,驱动实例可以包括其他类型的驱动实例。图2所示的Docker架构中也可以运行访问其他类型的容器。
还应理解,图2中只示出了Docker系统架构中与本发明有关的各个模块,图2所示的系统架构中还可以包括Docker系统架构中的其他模块,本发明对此不做具体限定。
还应理解,在图2所示的Docker架构中,Docker Daemon、execution driver、驱动实例和容器可以在一台物理主机上。Docker Daemon、execution driver、驱动实例和容器还可以在一台虚拟机上。Docker Client和Docker Daemon可以在一台物理主机或虚拟机上,也可以在不同的物理主机或虚拟机上,本发明对此不做具体限定。
从图2所示的Docker架构中可以看出Docker Daemon不再和execution driver层的某一个驱动实例建立“强绑定”的关系,而是作为一个“管理者”对execution driver层中的驱动实例进行管理。
需要说明的是,Docker Daemon可以采用现有技术中对execution driver层中的驱动实例进行初始化的流程,依次对execution driver层中的不同类型的驱动实例进行初始化,也可以采用其他的方式同时对execution driver层中的不同类型的驱动实例进行初始化,本发明对此不做具体限定。
用户使用可以通过Docker Client与Docker Daemon建立通信,并向DockerDaemon发送请求,该请求可以包括容器访问请求、容器运行请求等。Docker Daemon作为Docker系统架构中的主体部分,首先可以提供Docker Server的功能,接收Docker Client发送的请求;然后将请求发送至Docker Daemon中的运行引擎(Engine),Engine可以执行Docker内部的一系列工作,每一项工作都可以以一个Job的形式的存在,也就是说,Job可以认为是Engine内部最基本的工作执行单元。
Engine在运行Job的过程中,当需要容器镜像时,则Job可以从Docker Registry中下载镜像,并通过镜像管理驱动(Graph driver)将下载镜像以镜像(Graph)的形式存储;当需要为Docker创建网络环境时,Job可以通过网络管理驱动(network driver)创建并配置容器的网络环境;当需要限制容器运行资源或执行用户指令等操作时,Job可以通过执行驱动程序(Execution driver)来完成。
Docker可以直接调用libcontainer,即一项独立的容器管理包,最终操纵容器的命名空间(namespace)、控制族群(control group,cgroup)、网络设备以及防火墙规则等。
当执行完容器运行请求后,一个实际的容器就处于运行状态,该容器可以拥有独立的文件系统,以及独立并且相对安全的运行环境等。
图3示出了根据本发明实施例的另一用于访问容器的方法的Docker系统架构的示意性框图。应理解,图3所示的Docker架构中各个模块的功能和图2所示的各个模块的功能相同,并且也只示出了Docker架构中与本发明相关的部分,其他未示出的功能模块可以与目前Docker架构中的其他模块相同。为了简洁,可以参考上文中的描述,在此不再赘述。
从图3所示的Docker架构可以看出,执行驱动程序(execution driver)层可以独立于守护程序,具体的驱动实例(例如,图3中所示的Native/runc,一种内置的容器的驱动实例;LXC,LXC容器的驱动实例;runv一种容器虚拟机的驱动实例)也可以独立于executiondriver层。需要说明的是,上述的独立存在可以指两个相互独立的进程。
应理解,还可以对上述图2和图3所示的架构做变形,例如,守护程序和执行驱动程序可以是两个相互独立的进程,但是具体的驱动实例可以作为执行驱动程序进程中的一段逻辑,也就是说,具体的驱动实例不再独立于execution driver层。本发明对上述图2和图3所示的Docker架构不作具体限定。
图4示出了根据本发明实施的用于访问容器的方法的示意性流程图。图4所示的方法可以由图2或图3中的路由器(router)执行。应理解,图4示出了用于访问容器的方法的详细的步骤或操作,但这些步骤或操作仅是示例,本发明实施例还可以执行其他操作,或者图4中各操作的变形。此外,图4中的各个步骤可以按照与图4呈现的不同顺序来执行,并且有可能并非要执行图4中的全部操作。下面具体描述图4所示的方法步骤。
410,客户端向router发送容器访问请求,该容器访问请求用于请求访问目标容器。
具体地,上述router用于对用户发送的请求进行调度,该请求可以包括容器访问请求和/或容器运行请求。
应理解,上述容器访问请求可以携带目标容器的容器ID或者目标容器的容器IP,用于router确定该容器访问请求访问的目标容器。
还应理解,上述客户端可以是Docker Client,该Docker Client和Docker Daemon可以在一台物理主机或虚拟机上,也可以在不同的物理主机或虚拟机上,本发明对此不做具体限定。
需要说明的是,上述router可以是execution driver中的一段逻辑,executiondriver可以是Docker Daemon进程中的一段逻辑,execution driver和Docker Daemon还可以是两个不同的进程。
420,router从当前运行的多个驱动实例中选取所述目标容器对应的驱动实例,所述多个驱动实例中的不同驱动实例用于驱动不同类型的容器,所述多个驱动实例通过相同的Docker守护程序Daemon进行管理。
具体地,上述多个驱动实例中的每个驱动实例对应一种驱动程序,不同的驱动程序用于驱动不同类型的容器。
上述多个驱动实例通过相同的Docker Daemon进行管理,该Docker Daemon可以在启动时,对上述多个驱动实例中的每个驱动实例进行初始化。
430,router向所述目标容器对应的驱动实例发送所述容器访问请求。
具体地,router可以通过目标容器对应的驱动实例访问该目标容器。
在该方案中,可以通过一个Docker Daemon管理用于驱动不同类型的容器的驱动实例,使得用户通过一个Docker Daemon可以访问多个不同类型的容器,也就是说,将Docker Daemon和execution driver中具体的一个驱动实例的“强绑定”模式,改变为Docker Daemon对execution driver中的多个具体的驱动实例进行管理的模式,避免了现有技术中,通过不同的Docker Daemon管理的不同的驱动实例,访问不同类型的容器,减少Docker系统中Docker Daemon的运行开销。
并且,通过一个Docker Daemon,使用一套Docker应用程序编程接口(ApplicationProgramming Interface,API)可以对多种类型的容器进行访问,可以提高通过DockerDaemon访问容器的灵活性。
可选地,作为一个实施例,在步骤410中,接收所述容器访问请求,所述容器访问请求携带所述目标容器的容器ID;在步骤420中,根据所述目标容器的容器ID,从所述多个驱动实例中选取所述目标容器对应的驱动实例。
具体地,上述接收容器访问请求可以指router接收Docker Client发送的容器访问请求,该容器访问请求中可以携带目标容器的容器ID,router可以根据容器ID,获取目标容器的相关信息,例如目标容器的容器类型等。Router可以根据获取的目标容器的容器类型从Execution Driver层的多个不同类型的驱动实例中,选择与目标容器对应的驱动实例。
应理解,上述根据目标容器的容器ID,从多个驱动实例中选取目标容器对应的驱动实例由多种具体的实现方式,例如,router可以根据目标容器的容器ID,通过预先建立的容器ID和驱动实例的映射关系直接确定目标容器对应的驱动实例;router还可以根据目标容器的容器ID通过预先建立的容器ID和驱动实例类型的映射关系,确定目标容器对应的驱动实例。本发明对上述选取目标容器对应的驱动实例的方式不做具体限定。
可选地,作为一个实施例,所述根据所述目标容器的容器ID,从所述多个驱动实例中选取所述目标容器对应的驱动实例,包括:根据所述目标容器的容器ID,以及容器ID与容器类型的映射关系,确定所述目标容器的容器类型;根据所述目标容器的容器类型,以及容器类型与驱动实例的类型的映射关系,从所述多个驱动实例中选取所述目标容器对应的驱动实例。
需要说明的是,可以在Docker Daemon维护的各个容器信息中,增加字段,该字段可以记录容器ID与容器类型的映射关系,和/或容器类型与驱动实例的类型的映射关系。
应理解,上述容器ID与容器类型的映射关系,和/或,容器类型与驱动实例的类型的映射关系,可以是在Docker Daemon初始化时预先建立的,本发明对此不做具体限定。
可选地,作为一个实施例,所述根据所述目标容器的容器ID,从所述多个驱动实例中选取所述目标容器对应的驱动实例,包括:根据所述目标容器的容器ID,以及容器ID与驱动实例的类型的映射关系,从所述多个驱动实例中选取所述目标容器对应的驱动实例。
需要说明的是,可以在Docker Daemon维护的各个容器信息中,增加字段,该字段可以记录容器ID与驱动实例的类型的映射关系。
应理解,上述容器ID与驱动实例的类型的映射关系,可以是在Docker Daemon初始化时预先建立的,本发明对此不做具体限定。
可选地,作为一个实施例,所述方法还包括:步骤440至步骤450。
440,接收容器运行请求,容器运行请求携带目标容器对应的驱动实例的类型。
具体地,上述接收容器运行请求可以指router接收Docker Client发送的容器运行请求。
上述容器运行请求携带目标容器对应的驱动实例的类型,也就是说该容器运行请求可以表示运行一个容器。
例如,可以在上述容器运行请求中携带参数“-exec-driver=runv”,则该容器运行请求可以用于指示通过驱动实例runv运行一个runv容器。
450,router根据目标容器对应的驱动实例的类型,从多个驱动实例中确定目标容器对应的驱动实例。
例如,Docker Client向router发送上述容器运行请求,也就是说,该容器运行请求进入execution driver层中的router,router可以对该容器运行请求进行分析,确定该容器运行请求中的“exec-driver”的参数,即确定该容器运行请求指定的驱动实例的类型。
需要说明的是,上述当前运行的多个驱动实例的初始化时间可以在DockerDaemon初始化的过程中进行,也可以在Docker Daemon运行之后,接收到Docker Client发送的容器运行访问请求时,确定需要运行的目标容器的类型之后,根据目标容器的类型确定需要初始化的驱动实例的类型,并对该驱动实例的类型对应的驱动实例进行初始化。
在本发明实施例中,增加的对容器运行请求进行分析的步骤,并不会改变原有的Docker架构中的接口以及其他参数的使用情况。
460,router向目标容器对应的驱动实例发送容器运行请求。
具体地,router可以通过目标容器对应的驱动实例,运行一个目标容器。
在该方案中,通过一个程序管理用于驱动不同类型的容器的驱动实例,使得用户通过一个程序可以运行多个不同类型的容器,也就是说,将Docker Daemon和executiondriver中具体的一个驱动实例的“强绑定”模式,改变为Docker Daemon对executiondriver中的多个具体的驱动实例进行管理的模式,避免了现有技术中,通过不同的程序管理的不同的驱动实例,运行不同类型的容器,减少容器引擎中管理多个驱动实例的程序的运行开销。
并且,通过一个Docker Daemon,使用一套Docker应用程序编程接口(ApplicationProgramming Interface,API)可以运行多种类型的容器,提高通过Docker Daemon管理容器的灵活性。
图5示出了根据本发明实施例的用于访问容器的装置的示意性框图。图5所示的装置500包括:第一接收模块510,第一选取模块520和第一发送模块530。
第一接收模块510,用于接收容器访问请求,所述容器访问请求用于请求访问目标容器;
第一选取模块520,用于从当前运行的多个驱动实例中选取所述目标容器对应的驱动实例,所述多个驱动实例中的不同驱动实例用于驱动不同类型的容器,所述多个驱动实例通过相同的程序管理;
第一发送模块530,用于向所述第一选取模块选取的所述目标容器对应的驱动实例发送所述容器访问请求。
在该方案中,通过一个程序管理用于驱动不同类型的容器的驱动实例,使得用户通过一个程序可以访问多个不同类型的容器,避免了现有技术中,通过不同的程序管理的不同的驱动实例,访问不同类型的容器,减少容器引擎中管理多个驱动实例的程序的运行开销。
进一步地,当上述容器引擎为Docker时,多个驱动实例通过相同的程序管理可以指通过同一Docker Daemon管理多个驱动实例,在该方案中,通过一个Docker Daemon管理用于驱动不同类型的容器的驱动实例,使得用户通过一个Docker Daemon可以访问多个不同类型的容器,避免了现有技术中,通过不同的Docker Daemon管理的不同的驱动实例,访问不同类型的容器,减少Docker系统中Docker Daemon的运行开销。
并且,通过一个Docker Daemon,使用一套Docker应用程序编程接口(ApplicationProgramming Interface,API)可以对多种类型的容器进行访问,可以提高通过DockerDaemon访问容器的灵活性。
可选地,作为一个实施例,所述装置500还包括:第二接收模块,用于接收容器运行请求,所述容器运行请求携带所述目标容器对应的驱动实例的类型;第二选取模块,用于根据所述目标容器对应的驱动实例的类型,从所述多个驱动实例中选取所述目标容器对应的驱动实例;第二发送模块,用于向所述目标容器对应的驱动实例发送所述容器运行请求。
可选地,作为一个实施例,所述第一接收模块具体用于:接收所述容器访问请求,所述容器访问请求携带所述目标容器的容器ID;所述第一选取模块具体用于:根据所述目标容器的容器ID,从所述多个驱动实例中选取所述目标容器对应的驱动实例。
可选地,作为一个实施例,所述第一选取模块具体还用于:根据所述目标容器的容器ID,以及容器ID与容器类型的映射关系,确定所述目标容器的容器类型;根据所述目标容器的容器类型,以及容器类型与驱动实例的类型的映射关系,从所述多个驱动实例中选取所述目标容器对应的驱动实例。
可选地,作为一个实施例,所述第一选取模块具体还用于:根据所述目标容器的容器ID,以及容器ID与驱动实例的类型的映射关系,从所述多个驱动实例中选取所述目标容器对应的驱动实例。
图6示出了根据本发明另一实施例的用于访问容器的装置的示意性框图。图6所示的装置600包括:存储器610、处理器620、输入/输出接口630、通信接口640和总线系统650。其中,存储器610、处理器620、输入/输出接口630和通信接口640通过总线系统660相连,该存储器610用于存储指令,该处理器620用于执行该存储器610存储的指令,以控制输入/输出接口630接收输入的数据和信息,输出操作结果等数据,并控制通信接口640发送信号。
输入/输出接口630,用于容器访问请求,所述容器访问请求用于请求访问目标容器;
处理器620,用于从当前运行的多个驱动实例中选取所述目标容器对应的驱动实例,所述多个驱动实例中的不同驱动实例用于驱动不同类型的容器,所述多个驱动实例通过相同程序进行管理;
所述输入/输出接口630,用于向所述目标容器对应的驱动实例发送所述容器访问请求。
应理解,在本发明实施例中,该处理器620可以采用通用的中央处理器(CentralProcessing Unit,CPU),微处理器,应用专用集成电路(Application SpecificIntegrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本发明实施例所提供的技术方案。
还应理解,通信接口640使用例如但不限于收发器一类的收发装置,来实现移动终端600与其他设备或通信网络之间的通信。
该存储器610可以包括只读存储器和随机存取存储器,并向处理器620提供指令和数据。处理器620的一部分还可以包括非易失性随机存取存储器。例如,处理器620还可以存储设备类型的信息。
该总线系统650除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统650。
在实现过程中,上述方法的各步骤可以通过处理器620中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的用于访问容器的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器610,处理器620读取存储器610中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
在该方案中,通过一个程序管理用于驱动不同类型的容器的驱动实例,使得用户通过一个程序可以访问多个不同类型的容器,避免了现有技术中,通过不同的程序管理的不同的驱动实例,访问不同类型的容器,减少容器引擎中管理多个驱动实例的程序的运行开销。
进一步地,当上述容器引擎为Docker时,多个驱动实例通过相同的程序管理可以指通过同一Docker Daemon管理多个驱动实例,在该方案中,通过一个Docker Daemon管理用于驱动不同类型的容器的驱动实例,使得用户通过一个Docker Daemon可以访问多个不同类型的容器,避免了现有技术中,通过不同的Docker Daemon管理的不同的驱动实例,访问不同类型的容器,减少Docker系统中Docker Daemon的运行开销。
并且,通过一个Docker Daemon,使用一套Docker应用程序编程接口(ApplicationProgramming Interface,API)可以对多种类型的容器进行访问,可以提高通过DockerDaemon访问容器的灵活性。
应理解,在本发明实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种用于访问容器的方法,其特征在于,包括:
接收容器访问请求,所述容器访问请求用于请求访问目标容器;
从当前运行的多个驱动实例中选取所述目标容器对应的驱动实例,所述多个驱动实例中的不同驱动实例用于驱动不同类型的容器,所述多个驱动实例通过相同的程序管理;
向所述目标容器对应的驱动实例发送所述容器访问请求。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收容器运行请求,所述容器运行请求携带所述目标容器对应的驱动实例的类型;
根据所述目标容器对应的驱动实例的类型,从所述多个驱动实例中选取所述目标容器对应的驱动实例;
向所述目标容器对应的驱动实例发送所述容器运行请求。
3.如权利要求1或2所述的方法,其特征在于,所述接收容器访问请求,包括:
接收所述容器访问请求,所述容器访问请求携带所述目标容器的容器ID;
所述从当前运行的多个驱动实例中选取所述目标容器对应的驱动实例,包括:
根据所述目标容器的容器ID,从所述多个驱动实例中选取所述目标容器对应的驱动实例。
4.如权利要求3所述的方法,其特征在于,所述根据所述目标容器的容器ID,从所述多个驱动实例中选取所述目标容器对应的驱动实例,包括:
根据所述目标容器的容器ID,以及容器ID与容器类型的映射关系,确定所述目标容器的容器类型;
根据所述目标容器的容器类型,以及容器类型与驱动实例的类型的映射关系,从所述多个驱动实例中选取所述目标容器对应的驱动实例。
5.如权利要求3所述的方法,其特征在于,所述根据所述目标容器的容器ID,从所述多个驱动实例中选取所述目标容器对应的驱动实例,包括:
根据所述目标容器的容器ID,以及容器ID与驱动实例的类型的映射关系,从所述多个驱动实例中选取所述目标容器对应的驱动实例。
6.一种用于访问容器的装置,其特征在于,包括:
第一接收模块,用于接收容器访问请求,所述容器访问请求用于请求访问目标容器;
第一选取模块,用于从当前运行的多个驱动实例中选取所述目标容器对应的驱动实例,所述多个驱动实例中的不同驱动实例用于驱动不同类型的容器,所述多个驱动实例通过相同的程序管理;
第一发送模块,用于向所述第一选取模块选取的所述目标容器对应的驱动实例发送所述容器访问请求。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收容器运行请求,所述容器运行请求携带所述目标容器对应的驱动实例的类型;
第二选取模块,用于根据所述目标容器对应的驱动实例的类型,从所述多个驱动实例中选取所述目标容器对应的驱动实例;
第二发送模块,用于向所述目标容器对应的驱动实例发送所述容器运行请求。
8.如权利要求6或7所述的装置,其特征在于,所述第一接收模块具体用于:接收所述容器访问请求,所述容器访问请求携带所述目标容器的容器ID;
所述第一选取模块具体用于:根据所述目标容器的容器ID,从所述多个驱动实例中选取所述目标容器对应的驱动实例。
9.如权利要求8所述的装置,其特征在于,所述第一选取模块具体还用于:
根据所述目标容器的容器ID,以及容器ID与容器类型的映射关系,确定所述目标容器的容器类型;
根据所述目标容器的容器类型,以及容器类型与驱动实例的类型的映射关系,从所述多个驱动实例中选取所述目标容器对应的驱动实例。
10.如权利要求8所述的装置,其特征在于,所述第一选取模块具体还用于:
根据所述目标容器的容器ID,以及容器ID与驱动实例的类型的映射关系,从所述多个驱动实例中选取所述目标容器对应的驱动实例。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610806797.3A CN107797845B (zh) | 2016-09-07 | 2016-09-07 | 用于访问容器的方法和装置 |
EP17848099.2A EP3499365A4 (en) | 2016-09-07 | 2017-09-04 | METHOD AND DEVICE FOR USE IN ACCESS TO A CONTAINER |
KR1020197009003A KR102176298B1 (ko) | 2016-09-07 | 2017-09-04 | 컨테이너를 액세스하는데 사용하기 위한 방법 및 디바이스 |
PCT/CN2017/100351 WO2018045926A1 (zh) | 2016-09-07 | 2017-09-04 | 用于访问容器的方法和装置 |
US16/294,591 US11321109B2 (en) | 2016-09-07 | 2019-03-06 | Container engine for selecting driver based on container metadata |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610806797.3A CN107797845B (zh) | 2016-09-07 | 2016-09-07 | 用于访问容器的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107797845A true CN107797845A (zh) | 2018-03-13 |
CN107797845B CN107797845B (zh) | 2021-06-15 |
Family
ID=61529900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610806797.3A Active CN107797845B (zh) | 2016-09-07 | 2016-09-07 | 用于访问容器的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11321109B2 (zh) |
EP (1) | EP3499365A4 (zh) |
KR (1) | KR102176298B1 (zh) |
CN (1) | CN107797845B (zh) |
WO (1) | WO2018045926A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117348951A (zh) * | 2023-12-04 | 2024-01-05 | 北京长扬软件有限公司 | 应用于linux内核的容器感知装置和容器感知方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10791065B2 (en) * | 2017-09-19 | 2020-09-29 | Cisco Technology, Inc. | Systems and methods for providing container attributes as part of OAM techniques |
US10587412B2 (en) * | 2017-11-07 | 2020-03-10 | International Business Machines Corporation | Virtual machine structure |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100318657A1 (en) * | 2009-06-11 | 2010-12-16 | Microsoft Corporation | Educational Adaptive Provider Architecture |
CN105045656A (zh) * | 2015-06-30 | 2015-11-11 | 深圳清华大学研究院 | 基于虚拟容器的大数据存储与管理方法 |
CN105099706A (zh) * | 2015-08-25 | 2015-11-25 | 华为技术有限公司 | 一种数据通信方法、用户设备和服务器 |
US20160162685A1 (en) * | 2014-12-08 | 2016-06-09 | Vmware, Inc. | Monitoring application execution in a clone of a virtual computing instance for application whitelisting |
CN105915378A (zh) * | 2016-01-04 | 2016-08-31 | 中国电子科技网络信息安全有限公司 | 一种基于容器应用的跨平台统一管理系统 |
US9760415B2 (en) * | 2014-05-16 | 2017-09-12 | Microsoft Technology Licensing, Llc | Code service for language-independent dispatch |
WO2017165151A1 (en) * | 2016-03-21 | 2017-09-28 | Microsoft Technology Licensing, Llc | Operating system layering |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061753A (en) | 1998-01-27 | 2000-05-09 | Emc Corporation | Apparatus and method of accessing target devices across a bus utilizing initiator identifiers |
JP2001051935A (ja) * | 1999-05-28 | 2001-02-23 | Sony Corp | 情報処理装置および方法、並びに記録媒体 |
US7584433B2 (en) * | 2005-04-20 | 2009-09-01 | Avp Ip Holding Co., Llc. | Extendible and open camera connector system |
US20070174429A1 (en) * | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
AU2007208093A1 (en) * | 2006-01-24 | 2007-08-02 | Citrix Systems, Inc. | Methods and systems for providing access to a computing environment |
US8856782B2 (en) * | 2007-03-01 | 2014-10-07 | George Mason Research Foundation, Inc. | On-demand disposable virtual work system |
US9772831B2 (en) * | 2010-04-26 | 2017-09-26 | Pivotal Software, Inc. | Droplet execution engine for dynamic server application deployment |
US8813065B2 (en) * | 2010-04-26 | 2014-08-19 | Vmware, Inc. | Microcloud platform delivery system |
US8683050B2 (en) * | 2010-05-06 | 2014-03-25 | Microsoft Corporation | Directing service requests to providers |
CN101916208A (zh) * | 2010-08-30 | 2010-12-15 | 芯通科技(成都)有限公司 | 一种用于多线程调用驱动模块的系统及方法 |
US9843533B2 (en) * | 2014-03-06 | 2017-12-12 | Trilio Data Inc. | Elastic compute cloud based on underutilized server resources using a distributed container system |
CN105022626B (zh) * | 2015-05-29 | 2018-08-03 | 克拉玛依红有软件有限责任公司 | 基于模型驱动的利用反射机制进行动态交互的系统及方法 |
CN114546594A (zh) * | 2015-05-29 | 2022-05-27 | 英特尔公司 | 对图形处理单元资源的容器访问 |
EP3304295B1 (en) * | 2015-06-05 | 2024-05-29 | Nutanix, Inc. | Architecture for managing i/o and storage for a virtualization environment using executable containers and virtual machines |
US11438278B2 (en) * | 2015-06-29 | 2022-09-06 | Vmware, Inc. | Container-aware application dependency identification |
CN104951360A (zh) * | 2015-06-30 | 2015-09-30 | 北京奇虎科技有限公司 | 基于Docker的配置管理方式及装置 |
US10142204B2 (en) * | 2015-07-27 | 2018-11-27 | Datagrid Systems, Inc. | Techniques for evaluating server system reliability, vulnerability and component compatibility using crowdsourced server and vulnerability data |
KR102294568B1 (ko) * | 2015-08-19 | 2021-08-26 | 삼성에스디에스 주식회사 | 컨테이너 이미지 보안 검사 방법 및 그 장치 |
US9934073B2 (en) * | 2015-10-23 | 2018-04-03 | Futurewei Technologies, Inc. | Extension of resource constraints for service-defined containers |
US9811386B2 (en) * | 2015-10-23 | 2017-11-07 | Oracle International Corporation | System and method for multitenant execution of OS programs invoked from a multitenant middleware application |
US10216529B1 (en) * | 2015-11-19 | 2019-02-26 | Virtuozzo International Gmbh | Method and system for sharing driver pages |
US9832802B2 (en) * | 2015-12-15 | 2017-11-28 | At&T Intellectual Property I, L.P. | Facilitating communications via a mobile internet-enabled connection interface |
US10892942B2 (en) * | 2016-01-22 | 2021-01-12 | Equinix, Inc. | Container-based cloud exchange disaster recovery |
US10326744B1 (en) * | 2016-03-21 | 2019-06-18 | EMC IP Holding Company LLC | Security layer for containers in multi-tenant environments |
US20170371693A1 (en) * | 2016-06-23 | 2017-12-28 | Vmware, Inc. | Managing containers and container hosts in a virtualized computer system |
US10142109B2 (en) * | 2016-08-16 | 2018-11-27 | Hewlett Packard Enterprise Development Lp | Instantiating containers |
-
2016
- 2016-09-07 CN CN201610806797.3A patent/CN107797845B/zh active Active
-
2017
- 2017-09-04 WO PCT/CN2017/100351 patent/WO2018045926A1/zh unknown
- 2017-09-04 KR KR1020197009003A patent/KR102176298B1/ko active IP Right Grant
- 2017-09-04 EP EP17848099.2A patent/EP3499365A4/en not_active Withdrawn
-
2019
- 2019-03-06 US US16/294,591 patent/US11321109B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100318657A1 (en) * | 2009-06-11 | 2010-12-16 | Microsoft Corporation | Educational Adaptive Provider Architecture |
US9760415B2 (en) * | 2014-05-16 | 2017-09-12 | Microsoft Technology Licensing, Llc | Code service for language-independent dispatch |
US20160162685A1 (en) * | 2014-12-08 | 2016-06-09 | Vmware, Inc. | Monitoring application execution in a clone of a virtual computing instance for application whitelisting |
CN105045656A (zh) * | 2015-06-30 | 2015-11-11 | 深圳清华大学研究院 | 基于虚拟容器的大数据存储与管理方法 |
CN105099706A (zh) * | 2015-08-25 | 2015-11-25 | 华为技术有限公司 | 一种数据通信方法、用户设备和服务器 |
CN105915378A (zh) * | 2016-01-04 | 2016-08-31 | 中国电子科技网络信息安全有限公司 | 一种基于容器应用的跨平台统一管理系统 |
WO2017165151A1 (en) * | 2016-03-21 | 2017-09-28 | Microsoft Technology Licensing, Llc | Operating system layering |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117348951A (zh) * | 2023-12-04 | 2024-01-05 | 北京长扬软件有限公司 | 应用于linux内核的容器感知装置和容器感知方法 |
CN117348951B (zh) * | 2023-12-04 | 2024-02-09 | 北京长扬软件有限公司 | 应用于linux内核的容器感知装置和容器感知方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3499365A4 (en) | 2019-08-21 |
KR102176298B1 (ko) | 2020-11-09 |
CN107797845B (zh) | 2021-06-15 |
US20190205156A1 (en) | 2019-07-04 |
EP3499365A1 (en) | 2019-06-19 |
KR20190044098A (ko) | 2019-04-29 |
US11321109B2 (en) | 2022-05-03 |
WO2018045926A1 (zh) | 2018-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11301287B2 (en) | Pattern-based orchestration of cloud provisioning tasks at runtime | |
US20220078078A1 (en) | Fpga-enabled compute instances | |
EP3761170B1 (en) | Virtual machine creation method and apparatus | |
US9971593B2 (en) | Interactive content development | |
EP2823393B1 (en) | Offline provisioning of virtual machines | |
US11902251B2 (en) | Socket transferring for HPC networks using kernel tracing | |
US10691312B2 (en) | Placement of virtual machines on physical hosts based on collocation rules | |
US9451033B2 (en) | Enhanced command selection in a networked computing environment | |
CN107797845A (zh) | 用于访问容器的方法和装置 | |
JP7486575B2 (ja) | コンテナに対する外部操作とミューテーション・イベントとの対応関係 | |
CN105103125B (zh) | 时钟中断信号的获取方法和nfv装置 | |
CN107203408A (zh) | 重定向的方法、装置和系统 | |
CN116414518A (zh) | Kubernetes上的大数据的数据局部性 | |
US7395403B2 (en) | Simulating partition resource allocation | |
US20200274758A1 (en) | Provisioning hybrid cloud resources in an operating environment | |
US11847611B2 (en) | Orchestrating and automating product deployment flow and lifecycle management | |
CN115580616A (zh) | 一种多租户架构多云平台下的云rpa系统及应用方法 | |
Barone et al. | Gaas: Customized grids in the clouds | |
Gavanda et al. | Mastering VMware vSphere 6.7: effectively deploy, manage, and monitor your virtual datacenter with VMware vSphere 6.7 | |
US10617955B1 (en) | Testing and delivery of game design assets in a service provider environment | |
CN109495575A (zh) | 一种服务配置方法、系统及erp服务器 | |
US10901803B2 (en) | Allocation of resources among logical partitions | |
WO2023193609A1 (en) | Selective privileged container augmentation | |
US10614206B2 (en) | Sequential object set passwords | |
CN113946406A (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 |