CN108170511A - 一种docker镜像获取方法、装置、设备及存储介质 - Google Patents
一种docker镜像获取方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN108170511A CN108170511A CN201711435407.7A CN201711435407A CN108170511A CN 108170511 A CN108170511 A CN 108170511A CN 201711435407 A CN201711435407 A CN 201711435407A CN 108170511 A CN108170511 A CN 108170511A
- Authority
- CN
- China
- Prior art keywords
- mirror
- docker
- mirror image
- target
- mirror images
- 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
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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- 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/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/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)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种docker镜像获取方法、装置、设备及存储介质,该方法包括以下步骤:接收目标docker主机针对目标docker镜像的拉取请求;如果目标docker镜像为公有镜像,则通过公有镜像平台获取目标docker镜像的镜像信息;确定镜像仓库中是否存储有目标docker镜像;如果是,则向目标docker主机返回目标docker镜像;如果否,则从公有镜像平台中下载目标docker镜像,返回给目标docker主机,并在镜像仓库中存储目标docker镜像。应用本发明实施例所提供的技术方案,提高了拉取速度,避免了docker主机在互联网中的频繁暴露,提高了docker主机的安全性。
Description
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种docker镜像获取方法、装置、设备及存储介质。
背景技术
随着计算机应用技术的快速发展,docker技术也得到了广泛应用。docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。docker主机可以进行拉取镜像、运行容器、提交镜像等容器和镜像操作。docker镜像为只读的容器模板,作为启动一个docker容器的基础,如何快速获取docker镜像显得至关重要。
docker镜像有私有镜像和公有镜像之分,私有镜像为用户自己的镜像,公有镜像为开放到网络中的镜像。在现有技术中,私有镜像在私有仓库中存储,公有镜像在公有镜像平台中存储。docker主机连接到互联网后可以在公有镜像平台中获取到所需要的公有镜像。
但这种方法存在一定的缺点,因为无论哪一台docker主机在需要获取公有镜像时,都需要连接到互联网后才能到公有镜像平台中获取相应的公有镜像,即使某一docker主机下载过某一公有镜像,同一局域网中的其他docker主机也必须重新下载才能获得,拉取速度较慢,而且,docker主机频繁暴露于互联网中存在较大的安全隐患。
发明内容
本发明的目的是提供一种docker镜像获取方法、装置、设备及存储介质,以提高公有镜像的拉取速度,避免docker主机频繁暴露于互联网中,提高docker主机的安全性。
为解决上述技术问题,本发明提供如下技术方案:
一种docker镜像获取方法,应用于镜像仓库中的控制器,所述控制器与共享所述镜像仓库的多个docker主机通信连接,所述方法包括:
接收目标docker主机针对目标docker镜像的拉取请求,所述目标docker主机为多个docker主机中的任意一个;
如果所述目标docker镜像为公有镜像,则通过公有镜像平台获取所述目标docker镜像的镜像信息;
根据所述镜像信息,确定所述镜像仓库中是否存储有所述目标docker镜像;
如果是,则向所述目标docker主机返回所述目标docker镜像;
如果否,则从所述公有镜像平台中下载所述目标docker镜像,返回给所述目标docker主机,并在所述镜像仓库中存储所述目标docker镜像。
在本发明的一种具体实施方式中,所述镜像仓库中还存储有私有镜像,所述方法还包括:
如果所述目标docker镜像为私有镜像,则确定所述镜像仓库中是否存储有所述目标docker镜像;
如果是,则执行所述向所述目标docker主机返回所述目标docker镜像的步骤,否则返回错误信息。
在本发明的一种具体实施方式中,所述根据所述镜像信息,确定所述镜像仓库中是否存储有所述目标docker镜像,包括:
根据所述镜像信息,确定组成所述目标docker镜像的镜像层;
如果所述镜像仓库中存储有组成所述目标docker镜像的所有镜像层,则确定所述镜像仓库中存储有所述目标docker镜像。
在本发明的一种具体实施方式中,所述从所述公有镜像平台中下载所述目标docker镜像,包括:
针对组成所述目标docker镜像的每个镜像层,如果所述镜像仓库中未存储有该镜像层,则从所述公有镜像平台中下载该镜像层。
一种docker镜像获取装置,应用于镜像仓库中的控制器,所述控制器与共享所述镜像仓库的多个docker主机通信连接,所述装置包括:
拉取请求接收模块,用于接收目标docker主机针对目标docker镜像的拉取请求,所述目标docker主机为多个docker主机中的任意一个;
镜像信息获取模块,用于在所述目标docker镜像为公有镜像时,通过公有镜像平台获取所述目标docker镜像的镜像信息;
第一存储确定模块,用于根据所述镜像信息,确定所述镜像仓库中是否存储有所述目标docker镜像;如果是,则触发镜像返回模块,如果否,则触发下载存储模块;
所述镜像返回模块,用于向所述目标docker主机返回所述目标docker镜像;
所述下载存储模块,用于从所述公有镜像平台中下载所述目标docker镜像,返回给所述目标docker主机,并在所述镜像仓库中存储所述目标docker镜像。
在本发明的一种具体实施方式中,所述镜像仓库中还存储有私有镜像,所述装置还包括第二存储确定模块,用于:
在所述目标docker镜像为私有镜像时,确定所述镜像仓库中是否存储有所述目标docker镜像;如果是,则触发所述镜像返回模块,否则返回错误信息。
在本发明的一种具体实施方式中,所述第一存储确定模块,具体用于:
根据所述镜像信息,确定组成所述目标docker镜像的镜像层;
如果所述镜像仓库中存储有组成所述目标docker镜像的所有镜像层,则确定所述镜像仓库中存储有所述目标docker镜像。
在本发明的一种具体实施方式中,所述下载存储模块,具体用于:
针对组成所述目标docker镜像的每个镜像层,如果所述镜像仓库中未存储有该镜像层,则从所述公有镜像平台中下载该镜像层。
一种docker镜像获取设备,应用于镜像仓库中的控制器,所述控制器与共享所述镜像仓库的多个docker主机通信连接,所述设备包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任一项所述docker镜像获取方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述docker镜像获取方法的步骤。
应用本发明实施例所提供的技术方案,镜像仓库中的控制器在接收到目标docker主机针对目标docker镜像的拉取请求时,如果确定目标docker镜像为公有镜像,则可以通过公有镜像平台获取目标docker镜像的镜像信息,根据镜像信息,可以确定镜像仓库中是否存储有目标docker镜像,如果存储有,则可以向目标docker主机返回目标docker镜像,如果未存储有,则可以从公有镜像平台中下载目标docker镜像,返回给目标docker主机,并在镜像仓库中存储目标docker镜像。即经过镜像仓库的docker镜像可以直接存储在镜像仓库中,docker主机可以直接从镜像仓库中拉取相应的docker镜像,提高了拉取速度,而且,通过镜像仓库将docker主机与互联网隔离开,docker主机不需要连接互联网即可获得相应的docker镜像,避免了docker主机在互联网中的频繁暴露,提高了docker主机的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种docker镜像获取***的结构示意图;
图2为本发明实施例中一种docker镜像获取方法的实施流程图;
图3为本发明实施例中一种docker镜像获取装置的结构示意图;
图4为本发明实施例中一种docker镜像获取设备的结构示意图。
具体实施方式
本发明的核心是提供一种docker镜像获取方法,该方法可以应用于镜像仓库中的控制器,控制器与共享镜像仓库的多个docker主机通信连接,如图1所示,镜像仓库中可以存储docker镜像,docker主机可以从镜像仓库中拉取相应的docker镜像,镜像仓库可以与公有镜像平台相连,即控制器还可访问公有镜像平台,在镜像仓库中没有存储相应的docker镜像时,通过公有镜像平台可以获取到相应的docker镜像,其中,控制器在图1中未示出。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图2所示,为本发明实施例所提供的一种docker镜像获取方法的实施流程图,该方法可以包括以下步骤:
S210:接收目标docker主机针对目标docker镜像的拉取请求。
目标docker主机为多个docker主机中的任意一个。
在实际应用中,docker主机可以根据实际需要向控制器发送docker镜像拉取请求。控制器在接收到目标docker主机针对目标docker镜像的拉取请求时,可以继续执行步骤S220的操作。目标docker主机为与控制器通信连接的多个docker主机中的任意一个。
S220:如果目标docker镜像为公有镜像,则通过公有镜像平台获取目标docker镜像的镜像信息。
docker镜像有公有镜像和私有镜像之分。公有镜像平台中存储有所有的公有镜像及每个公有镜像的镜像信息。对于任一个docker镜像而言,该docker镜像的镜像信息可以包括组成该docker镜像的每个镜像层的标识信息、镜像层之间的关联关系信息、该docker镜像的作者信息、历史修改信息等描述信息。
控制器在接收到目标docker主机针对目标docker镜像的拉取请求时,可以先确定目标docker镜像为公有镜像还是私有镜像。如果目标docker镜像为公有镜像,则可以通过公有镜像平台获取目标docker镜像的镜像信息。
S230:根据镜像信息,确定镜像仓库中是否存储有目标docker镜像。
在步骤S220,通过公有镜像平台获取到目标docker镜像的镜像信息后,可以根据镜像信息,确定镜像仓库中是否存储有目标docker镜像,如果存储有,则可以继续执行步骤S240的操作,如果未存储有,则可以继续执行步骤S250的操作。
S240:向目标docker主机返回目标docker镜像。
在确定镜像仓库中存储有目标docker镜像时,可以直接向目标docker主机返回目标docker镜像。以使目标docker主机执行基于目标docker镜像启动docker容器等操作。
S250:从公有镜像平台中下载目标docker镜像,返回给目标docker主机,并在镜像仓库中存储目标docker镜像。
如前所描述的,公有镜像平台中存储有所有的公有镜像。在确定镜像仓库中未存储有目标docker镜像时,可以从公有镜像平台中下载目标docker镜像,并返回给目标docker主机。同时,可以在镜像仓库中存储目标docker镜像。这样,当共享镜像仓库的其他docker主机发起针对目标docker镜像的拉取请求时,该docker主机不需要连接互联网,可以直接从镜像仓库中拉取目标docker镜像,提高了便捷性和安全性。
应用本发明实施例所提供的方法,镜像仓库中的控制器在接收到目标docker主机针对目标docker镜像的拉取请求时,如果确定目标docker镜像为公有镜像,则可以通过公有镜像平台获取目标docker镜像的镜像信息,根据镜像信息,可以确定镜像仓库中是否存储有目标docker镜像,如果存储有,则可以向目标docker主机返回目标docker镜像,如果未存储有,则可以从公有镜像平台中下载目标docker镜像,返回给目标docker主机,并在镜像仓库中存储目标docker镜像。即经过镜像仓库的docker镜像可以直接存储在镜像仓库中,docker主机可以直接从镜像仓库中拉取相应的docker镜像,提高了拉取速度,而且,通过镜像仓库将docker主机与互联网隔离开,docker主机不需要连接互联网即可获得相应的docker镜像,避免了docker主机在互联网中的频繁暴露,提高了docker主机的安全性。
在实际应用中,镜像仓库可以包括公有子仓库和私有子仓库,公有子仓库中仅存储有经过镜像仓库的公有镜像,私有子仓库中仅存储有私有镜像。当镜像仓库的控制器接收到目标docker主机发送的针对目标docker镜像的拉取请求时,如果目标docker镜像为私有镜像,则可以指向私有子仓库,以从私有子仓库中拉取相应的docker镜像,如果目标docker镜像为公有镜像,则可以指向公有子仓库,以从公有子仓库中拉取相应的docker镜像。
在本发明的一个实施例中,镜像仓库中还存储有私有镜像,该方法还可以包括以下步骤:
如果目标docker镜像为私有镜像,则确定镜像仓库中是否存储有目标docker镜像;如果是,则向目标docker主机返回目标docker镜像,否则返回错误信息。
在本发明实施例中,镜像仓库中既存储有经过镜像仓库的公有镜像,还存储有私有镜像。即将私有镜像和公有镜像的保存结合起来形成一个通用的镜像仓库。
在确定目标docker镜像为私有镜像时,可以确定镜像仓库中是否存储有目标docker镜像,如果存储有,则可以直接向目标docker主机返回目标docker镜像,如果未存储有,则可以向目标docker主机返回错误信息。目标docker主机接收到错误信息后,可以对发送的拉取请求是否正确进行确认。
在本发明的一种具体实施方式中,步骤S230可以包括以下步骤:
步骤一:根据镜像信息,确定组成目标docker镜像的镜像层;
步骤二:如果镜像仓库中存储有组成目标docker镜像的所有镜像层,则确定镜像仓库中存储有目标docker镜像。
在本发明实施例中,镜像仓库中既存储有经过镜像仓库的公有镜像,还存储有私有镜像。docker镜像是分层的数据结构,由一个或多个镜像层组成,每个镜像层都有物理上的镜像层文件与之对应,通过SHA256算法可以得出对应的标识id。
在目标docker镜像为公有镜像时,通过公有镜像平台获取目标docker镜像的镜像信息后,根据镜像信息,可以确定组成目标docker镜像的镜像层。如确定目标docker镜像由镜像层A、镜像层B、镜像层C组成。
如果镜像仓库中存储有组成目标docker镜像的所有镜像层,则可以确定镜像仓库中存储有目标docker镜像,从而可以向目标docker主机返回目标docker镜像。
如果镜像仓库中仅存储有组成目标docker镜像的部分镜像层,则可以确定镜像仓库中未存储有目标docker镜像。在这种情况下,可以从公有镜像平台中下载目标docker镜像。
具体的,针对组成目标docker镜像的每个镜像层,如果镜像仓库中未存储有该镜像层,则从公有镜像平台中下载该镜像层。
针对镜像仓库中存储的任意一个私有镜像而言,该私有镜像的部分镜像层可能与某一公有镜像的镜像层相同,即私有镜像和公有镜像可能具有相同的镜像层,二者之间可以共享相同的镜像层。
如镜像仓库中存储有某一私有镜像,该私有镜像由镜像层C、镜像层D组成。当确定目标docker镜像由镜像层A、镜像层B、镜像层C组成时,该私有镜像的镜像层C与目标docker镜像的镜像C相同。镜像仓库中仅存储有组成目标docker镜像的镜像层C,未存储有组成目标docker镜像的镜像层A和镜像层B。
针对组成目标docker镜像的每个镜像层,如果镜像仓库中未存储有该镜像层,则从公有镜像平台中下载该镜像层。
如上例中,可以从公有镜像平台中下载镜像层A和镜像层B,下载获得的镜像层A、镜像层B与镜像仓库中已存储的镜像C一起可组成目标docker镜像,从而可以将目标docker镜像返回给目标docker主机,并将镜像层A和镜像层B存储到镜像仓库中,使得镜像仓库中存储有目标docker镜像。这样可以充分利用私有镜像的镜像层,减少从公有镜像平台中下载docker镜像的次数,节省网络流量,提高docker镜像利用率,提高镜像仓库的磁盘利用率。
在镜像仓库中,对于具有同一标识的镜像层,可以仅存储一个,公有镜像和私有镜像通过镜像层的标识可以找到自己的镜像层,达到镜像层共享的目的,节省镜像仓库的存储空间。
相应于上面的方法实施例,本发明实施例还提供了一种docker镜像获取装置,应用于镜像仓库中的控制器,控制器与共享镜像仓库的多个docker主机通信连接,下文描述的一种docker镜像获取装置与上文描述的一种docker镜像获取方法可相互对应参照。
参见图3所示,该装置包括以下模块:
拉取请求接收模块310,用于接收目标docker主机针对目标docker镜像的拉取请求,目标docker主机为多个docker主机中的任意一个;
镜像信息获取模块320,用于在目标docker镜像为公有镜像时,通过公有镜像平台获取目标docker镜像的镜像信息;
第一存储确定模块330,用于根据镜像信息,确定镜像仓库中是否存储有目标docker镜像;如果是,则触发镜像返回模块340,如果否,则触发下载存储模块350;
镜像返回模块340,用于向目标docker主机返回目标docker镜像;
下载存储模块350,用于从公有镜像平台中下载目标docker镜像,返回给目标docker主机,并在镜像仓库中存储目标docker镜像。
应用本发明实施例所提供的装置,镜像仓库中的控制器在接收到目标docker主机针对目标docker镜像的拉取请求时,如果确定目标docker镜像为公有镜像,则可以通过公有镜像平台获取目标docker镜像的镜像信息,根据镜像信息,可以确定镜像仓库中是否存储有目标docker镜像,如果存储有,则可以向目标docker主机返回目标docker镜像,如果未存储有,则可以从公有镜像平台中下载目标docker镜像,返回给目标docker主机,并在镜像仓库中存储目标docker镜像。即经过镜像仓库的docker镜像可以直接存储在镜像仓库中,docker主机可以直接从镜像仓库中拉取相应的docker镜像,提高了拉取速度,而且,通过镜像仓库将docker主机与互联网隔离开,docker主机不需要连接互联网即可获得相应的docker镜像,避免了docker主机在互联网中的频繁暴露,提高了docker主机的安全性。
在本发明的一种具体实施方式中,镜像仓库中还存储有私有镜像,装置还包括第二存储确定模块,用于:
在目标docker镜像为私有镜像时,确定镜像仓库中是否存储有目标docker镜像;如果是,则触发镜像返回模块340,否则返回错误信息。
在本发明的一种具体实施方式中,第一存储确定模块330,具体用于:
根据镜像信息,确定组成目标docker镜像的镜像层;
如果镜像仓库中存储有组成目标docker镜像的所有镜像层,则确定镜像仓库中存储有目标docker镜像。
在本发明的一种具体实施方式中,下载存储模块350,具体用于:
针对组成目标docker镜像的每个镜像层,如果镜像仓库中未存储有该镜像层,则从公有镜像平台中下载该镜像层。
相应于上面的方法实施例,本发明实施例还提供了一种docker镜像获取设备,应用于镜像仓库中的控制器,控制器与共享镜像仓库的多个docker主机通信连接。如图4所示,该设备包括:
存储器410,用于存储计算机程序;
处理器420,用于执行计算机程序时实现上述docker镜像获取方法的步骤。
相应于上面的方法实施例,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述docker镜像获取方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置、设备、存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种docker镜像获取方法,其特征在于,应用于镜像仓库中的控制器,所述控制器与共享所述镜像仓库的多个docker主机通信连接,所述方法包括:
接收目标docker主机针对目标docker镜像的拉取请求,所述目标docker主机为多个docker主机中的任意一个;
如果所述目标docker镜像为公有镜像,则通过公有镜像平台获取所述目标docker镜像的镜像信息;
根据所述镜像信息,确定所述镜像仓库中是否存储有所述目标docker镜像;
如果是,则向所述目标docker主机返回所述目标docker镜像;
如果否,则从所述公有镜像平台中下载所述目标docker镜像,返回给所述目标docker主机,并在所述镜像仓库中存储所述目标docker镜像。
2.根据权利要求1所述的方法,其特征在于,所述镜像仓库中还存储有私有镜像,所述方法还包括:
如果所述目标docker镜像为私有镜像,则确定所述镜像仓库中是否存储有所述目标docker镜像;
如果是,则执行所述向所述目标docker主机返回所述目标docker镜像的步骤,否则返回错误信息。
3.根据权利要求2所述的方法,其特征在于,所述根据所述镜像信息,确定所述镜像仓库中是否存储有所述目标docker镜像,包括:
根据所述镜像信息,确定组成所述目标docker镜像的镜像层;
如果所述镜像仓库中存储有组成所述目标docker镜像的所有镜像层,则确定所述镜像仓库中存储有所述目标docker镜像。
4.根据权利要求3所述的方法,其特征在于,所述从所述公有镜像平台中下载所述目标docker镜像,包括:
针对组成所述目标docker镜像的每个镜像层,如果所述镜像仓库中未存储有该镜像层,则从所述公有镜像平台中下载该镜像层。
5.一种docker镜像获取装置,其特征在于,应用于镜像仓库中的控制器,所述控制器与共享所述镜像仓库的多个docker主机通信连接,所述装置包括:
拉取请求接收模块,用于接收目标docker主机针对目标docker镜像的拉取请求,所述目标docker主机为多个docker主机中的任意一个;
镜像信息获取模块,用于在所述目标docker镜像为公有镜像时,通过公有镜像平台获取所述目标docker镜像的镜像信息;
第一存储确定模块,用于根据所述镜像信息,确定所述镜像仓库中是否存储有所述目标docker镜像;如果是,则触发镜像返回模块,如果否,则触发下载存储模块;
所述镜像返回模块,用于向所述目标docker主机返回所述目标docker镜像;
所述下载存储模块,用于从所述公有镜像平台中下载所述目标docker镜像,返回给所述目标docker主机,并在所述镜像仓库中存储所述目标docker镜像。
6.根据权利要求5所述的装置,其特征在于,所述镜像仓库中还存储有私有镜像,所述装置还包括第二存储确定模块,用于:
在所述目标docker镜像为私有镜像时,确定所述镜像仓库中是否存储有所述目标docker镜像;如果是,则触发所述镜像返回模块,否则返回错误信息。
7.根据权利要求6所述的装置,其特征在于,所述第一存储确定模块,具体用于:
根据所述镜像信息,确定组成所述目标docker镜像的镜像层;
如果所述镜像仓库中存储有组成所述目标docker镜像的所有镜像层,则确定所述镜像仓库中存储有所述目标docker镜像。
8.根据权利要求7所述的装置,其特征在于,所述下载存储模块,具体用于:
针对组成所述目标docker镜像的每个镜像层,如果所述镜像仓库中未存储有该镜像层,则从所述公有镜像平台中下载该镜像层。
9.一种docker镜像获取设备,其特征在于,应用于镜像仓库中的控制器,所述控制器与共享所述镜像仓库的多个docker主机通信连接,所述设备包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述docker镜像获取方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述docker镜像获取方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711435407.7A CN108170511A (zh) | 2017-12-26 | 2017-12-26 | 一种docker镜像获取方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711435407.7A CN108170511A (zh) | 2017-12-26 | 2017-12-26 | 一种docker镜像获取方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108170511A true CN108170511A (zh) | 2018-06-15 |
Family
ID=62521618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711435407.7A Pending CN108170511A (zh) | 2017-12-26 | 2017-12-26 | 一种docker镜像获取方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108170511A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109165191A (zh) * | 2018-09-12 | 2019-01-08 | 郑州云海信息技术有限公司 | 一种基于ai云的容器卷数据上传方法和装置 |
CN110908671A (zh) * | 2018-09-18 | 2020-03-24 | 北京京东尚科信息技术有限公司 | 构建docker镜像的方法、装置及计算机可读存储介质 |
CN111414180A (zh) * | 2020-03-18 | 2020-07-14 | 深圳力维智联技术有限公司 | 终端远程更新方法、设备及计算机可读存储介质 |
CN111538566A (zh) * | 2020-04-24 | 2020-08-14 | 咪咕文化科技有限公司 | 镜像文件处理方法、装置、***、电子设备及存储介质 |
CN113434249A (zh) * | 2021-06-18 | 2021-09-24 | 杭州趣链科技有限公司 | 镜像同步方法、装置、docker主机及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106371889A (zh) * | 2016-08-22 | 2017-02-01 | 浪潮(北京)电子信息产业有限公司 | 一种调度镜像的高性能集群***实现方法及装置 |
CN106487850A (zh) * | 2015-08-29 | 2017-03-08 | 华为技术有限公司 | 一种云环境下获取镜像的方法、装置和*** |
CN106506587A (zh) * | 2016-09-23 | 2017-03-15 | 中国人民解放军国防科学技术大学 | 一种基于分布式存储的Docker镜像下载方法 |
CN106899669A (zh) * | 2017-02-23 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种基于Registry的企业容器镜像建立方法和装置 |
CN107066310A (zh) * | 2017-03-11 | 2017-08-18 | 郑州云海信息技术有限公司 | 一种搭建及使用安全Docker私有仓库的方法及装置 |
CN107454188A (zh) * | 2017-08-28 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种容器创建方法和*** |
-
2017
- 2017-12-26 CN CN201711435407.7A patent/CN108170511A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106487850A (zh) * | 2015-08-29 | 2017-03-08 | 华为技术有限公司 | 一种云环境下获取镜像的方法、装置和*** |
CN106371889A (zh) * | 2016-08-22 | 2017-02-01 | 浪潮(北京)电子信息产业有限公司 | 一种调度镜像的高性能集群***实现方法及装置 |
CN106506587A (zh) * | 2016-09-23 | 2017-03-15 | 中国人民解放军国防科学技术大学 | 一种基于分布式存储的Docker镜像下载方法 |
CN106899669A (zh) * | 2017-02-23 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种基于Registry的企业容器镜像建立方法和装置 |
CN107066310A (zh) * | 2017-03-11 | 2017-08-18 | 郑州云海信息技术有限公司 | 一种搭建及使用安全Docker私有仓库的方法及装置 |
CN107454188A (zh) * | 2017-08-28 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种容器创建方法和*** |
Non-Patent Citations (1)
Title |
---|
许晓斌: "《Maven实战》", 31 January 2011 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109165191A (zh) * | 2018-09-12 | 2019-01-08 | 郑州云海信息技术有限公司 | 一种基于ai云的容器卷数据上传方法和装置 |
CN110908671A (zh) * | 2018-09-18 | 2020-03-24 | 北京京东尚科信息技术有限公司 | 构建docker镜像的方法、装置及计算机可读存储介质 |
CN111414180A (zh) * | 2020-03-18 | 2020-07-14 | 深圳力维智联技术有限公司 | 终端远程更新方法、设备及计算机可读存储介质 |
CN111538566A (zh) * | 2020-04-24 | 2020-08-14 | 咪咕文化科技有限公司 | 镜像文件处理方法、装置、***、电子设备及存储介质 |
CN113434249A (zh) * | 2021-06-18 | 2021-09-24 | 杭州趣链科技有限公司 | 镜像同步方法、装置、docker主机及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108170511A (zh) | 一种docker镜像获取方法、装置、设备及存储介质 | |
US10412021B2 (en) | Optimizing placement of virtual machines | |
CN105630632B (zh) | 一种虚拟机恢复的方法及虚拟机管理设备 | |
CN106385329B (zh) | 资源池的处理方法、装置和设备 | |
CN106970822A (zh) | 一种容器创建方法及装置 | |
CN103530186B (zh) | 实现相机应用支持多位置存储的方法及*** | |
CN107301022A (zh) | 一种基于容器技术的存储访问方法及*** | |
CN105190545B (zh) | 虚拟化方法和装置及计算机设备 | |
CN106598692A (zh) | 在逻辑卷中创建镜像文件、虚拟机启动方法及服务器 | |
CN104461716B (zh) | 一种多核异构***的访问方法及多核异构*** | |
EP3618352A1 (en) | Virtual machine management | |
CN104811473B (zh) | 一种创建虚拟非易失性存储介质的方法、***及管理*** | |
CN103440111B (zh) | 虚拟机磁盘空间的扩展方法、宿主机和平台 | |
US11307900B2 (en) | Adjustment of the number of central processing units to meet performance requirements of an I/O resource | |
CN104899161B (zh) | 一种基于云存储环境的连续数据保护的缓存方法 | |
CN110460635A (zh) | 一种面向无人驾驶的边缘卸载方法及装置 | |
CN106294198B (zh) | 一种Linux操作***的内存分配方法及释放方法 | |
CN109819023A (zh) | 分布式事务处理方法及相关产品 | |
US11385900B2 (en) | Accessing queue data | |
US20200097344A1 (en) | Enqueue-related processing based on timing out of an attempted enqueue | |
CN106161516A (zh) | 用于存储数据的方法、装置以及*** | |
CN115361389B (zh) | 一种云计算实例创建方法及装置 | |
CN106844035A (zh) | 一种实现云服务器资源释放或恢复的方法及装置 | |
CN104392408B (zh) | 一种展现图像的***及方法 | |
CN110377399A (zh) | HBase容器化方法、装置、设备及可读存储介质 |
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: 20180615 |