CN110554905A - 一种容器的启动方法及装置 - Google Patents

一种容器的启动方法及装置 Download PDF

Info

Publication number
CN110554905A
CN110554905A CN201910804107.4A CN201910804107A CN110554905A CN 110554905 A CN110554905 A CN 110554905A CN 201910804107 A CN201910804107 A CN 201910804107A CN 110554905 A CN110554905 A CN 110554905A
Authority
CN
China
Prior art keywords
host
ports
container
unoccupied
preset value
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
Application number
CN201910804107.4A
Other languages
English (en)
Inventor
赵艳杰
康林
段效晨
易帆
秦占明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201910804107.4A priority Critical patent/CN110554905A/zh
Publication of CN110554905A publication Critical patent/CN110554905A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明实施例提供了一种容器的启动方法及装置,包括:检测容器的网络模式是否是主机网络模式;若是主机网络模式,则获取容器的多个容器端口;获取未被占用的主机端口;建立多个容器端口与未被占用的主机端口的映射关系,基于建立的映射关系,启动容器。应用本发明实施例提供的技术方案,一个容器的多个容器端口不会映射到同一主机端口上,降低主机网络模式下容器内运行多个应用时端口冲突的程度。

Description

一种容器的启动方法及装置
技术领域
本发明涉及计算机技术领域,特别是涉及一种容器的启动方法及装置。
背景技术
在Docker等开源的应用容器引擎的基础上,Kubernetes等开源的容器集群管理系统能够为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整的功能,提高大规模集群管理的便捷性。
然而,在开源的容器集群管理系统中,当容器的网络模式是主机网络模式,并且容器内运行多个应用的时候,每个应用对应一个容器端口,多个应用则对应多个容器端口,这多个容器端口映射到同一主机端口上。由于多个容器端口映射到同一主机端口上,因而会出现多个容器端口争抢一个主机端口的资源的问题,发生端口冲突,导致了应用无法正常启动,从而无法提供正常的服务。
发明内容
本发明实施例的目的在于提供一种容器的启动方法及装置,以降低主机网络模式下容器内运行多个应用时端口冲突的程度。具体技术方案如下:
第一方面,本发明实施例提供了一种容器的启动方法,包括:
检测容器的网络模式是否是主机网络模式;
若是主机网络模式,则获取所述容器的多个容器端口;
获取多个未被占用的主机端口;
建立所述多个容器端口与多个所述未被占用的主机端口的映射关系;
基于建立的映射关系,启动所述容器。
可选的,当所述未被占用的主机端口的数量小于所述多个容器端口的数量时,所述映射关系中每一所述未被占用的主机端口至少对应一个所述容器端口,且每一所述容器端口与一个所述未被占用的主机端口对应;
当所述未被占用的主机端口的数量等于所述多个容器端口的数量时,所述映射关系中所述未被占用的主机端口与所述容器端口一一对应。
可选的,所述获取多个未被占用的主机端口的步骤,包括:
获取主机端口位图bitmap,所述主机端口bitmap中包括第一预设值与主机端口的对应关系,或者第二预设值与主机端口的对应关系,所述第一预设值用于指示主机端口处于未被占用的状态,所述第二预设值用于指示主机端口处于已被占用的状态;
在所述主机端口bitmap中查找所述第一预设值对应的主机端口,得到多个未被占用的主机端口。
可选的,在建立所述多个容器端口与多个所述未被占用的主机端口的映射关系之后,还包括:
将所述主机端口bitmap中未被占用的主机端口对应的所述第一预设值修改为所述第二预设值。
可选的,所述在所述主机端口bitmap中查找所述第一预设值对应的主机端口,得到未被占用的主机端口的步骤,包括:
在所述主机端口bitmap中查找所述第一预设值对应的主机端口;
若所述主机端口bitmap中所述第一预设值对应的主机端口的数量大于等于所述多个容器端口的数量,则获取与所述多个容器端口的数量相等的数量个所述第一预设值对应的主机端口,作为未被占用的主机端口;
若所述主机端口bitmap中所述第一预设值对应的主机端口的数量小于所述多个容器端口的数量,则获取所有所述第一预设值对应的主机端口,作为未被占用的主机端口。
可选的,所述在所述主机端口bitmap中查找所述第一预设值对应的主机端口,得到未被占用的主机端口的步骤,包括:
遍历主机端口,获得所述第一预设值对应的主机端口;
判断获得的所述第一预设值对应的主机端口的数量是否等于所述多个容器端口的数量;
若否,则返回执行所述遍历主机端口的步骤;
若是,则停止遍历所述主机端口。
第二方面,本发明实施例还提供了一种容器的启动装置,包括:
检测单元,用于检测容器的网络模式是否是主机网络模式;
第一获取单元,用于若是主机网络模式,则获取所述容器的多个容器端口;
第二获取单元,用于获取多个未被占用的主机端口;
映射单元,用于建立所述多个容器端口与多个所述未被占用的主机端口的映射关系。
启动单元,用于基于建立的映射关系,启动所述容器。
可选的,当所述未被占用的主机端口的数量小于所述多个容器端口的数量时,所述映射关系中每一所述未被占用的主机端口至少对应一个所述容器端口,且每一所述容器端口与一个所述未被占用的主机端口对应;
当所述未被占用的主机端口的数量等于所述多个容器端口的数量时,所述映射关系中所述未被占用的主机端口与所述多个容器端口一一对应。
可选的,所述第二获取单元,具体可以用于:
获取主机端口bitmap,所述主机端口bitmap中包括第一预设值与主机端口的对应关系,或者第二预设值与主机端口的对应关系,所述第一预设值用于指示主机端口处于未被占用的状态,所述第二预设值用于指示主机端口处于已被占用的状态;
在所述主机端口bitmap中查找所述第一预设值对应的主机端口,得到多个未被占用的主机端口。
可选的,所述装置还可以包括:
修改单元,用于将所述主机端口bitmap中未被占用的主机端口对应的所述第一预设值修改为所述第二预设值。
可选的,所述第二获取单元,具体可以用于:
在所述主机端口bitmap中查找所述第一预设值对应的主机端口;
若所述主机端口bitmap中所述第一预设值对应的主机端口的数量大于等于所述多个容器端口的数量,则获取与所述多个容器端口的数量相等的数量个所述第一预设值对应的主机端口,作为未被占用的主机端口;
若所述主机端口bitmap中所述第一预设值对应的主机端口的数量小于所述多个容器端口的数量,则获取所有所述第一预设值对应的主机端口,作为未被占用的主机端口。
可选的,所述第二获取单元,具体可以用于:
遍历主机端口,获得所述第一预设值对应的主机端口;
判断获得的所述第一预设值对应的主机端口的数量是否等于所述多个容器端口的数量;
若否,则返回执行所述遍历主机端口的步骤;
若是,则停止遍历所述主机端口。
第三方面,本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现任一所述的容器的启动方法步骤。
第四方面,本发明实施例还提供了一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的容器的启动方法步骤。
本发明实施例提供的一种容器的启动方法及装置,在主机网络模式下,获取多个容器端口和多个未被占用的主机端口,建立多个容器端口与多个未被占用的主机端口的映射关系。可见本发明实施例中,一个容器的多个容器端口不会映射到同一主机端口上,降低主机网络模式下容器内运行多个应用时端口冲突的程度。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的容器的启动方法的一种流程图;
图2为本发明实施例提供的位图构建的一种示意图;
图3为本发明实施例提供的端口映射的一种示意图;
图4为本发明实施例提供的端口映射的另一种示意图;
图5为本发明实施例提供的容器的启动装置的一种结构图;
图6为本发明实施例提供的电子设备的一种结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
为便于理解,下面对本申请实施例中出现的词语进行解释说明。
主机网络,即Host Network,指容器与主机享受相同的网络命名空间(networknamespace)。在这种情况下,用户访问主机端口就能访问容器端口。
在开源的容器集群管理系统中,当容器的网络模式是主机网络模式,并且容器内运行多个应用的时候,每个应用对应一个容器端口,多个应用则对应多个容器端口,这多个容器端口映射到同一主机端口上,因而会出现多个容器端口争抢一个主机端口的资源的问题,发生端口冲突,导致了应用无法正常启动,从而无法提供正常的服务。
为解决上述问题,本发明实施例公开了一种容器的启动方法及装置,以下分别进行详细说明。
如图1所示,图1为本发明实施例提供的容器的启动方法的一种流程图。该方法可以应用于任一可以实现上述容器的启动方法的设备。为便于描述,下面以电子设备为执行主体进行说明,并不起限定作用。该容器的启动方法包括如下步骤。
步骤101,检测容器的网络模式是否是主机网络模式。若是主机网络模式,则步骤102。
容器的网络模式包括主机网络模式。主机网络模式下,容器内运行多个应用的时候,每个应用对应一个容器端口,多个应用则对应多个容器端口。
电子设备周期性检查本地容器的网络模式是否是主机网络模式。
一个实施例中,电子设备中预先设置有容器的配置文件。启动配置文件,检测容器的网络模式是否是Host Network模式。其中,该配置文件可以为Pod的yaml配置文件。
步骤102,获取容器的多个容器端口。
容器中包括多个应用,每一应用对应一个对外暴露的容器端口。若电子设备检测到网络模式为主机网络模式,则获取容器对外暴露的容器端口。
一个实施例中,电子设备中预先设置有容器的配置文件。启动配置文件,检测容器的网络模式是否是Host Network模式。若为Host Network模式,则电子设备可根据配置文件获取容器对外暴露的端口。其中,当配置文件为Pod的yaml配置文件时,则需该配置文件中增加用于启动该配置文件可以获取容器对外暴露的容器端口控制指令。
步骤103,获取多个未被占用的主机端口。
在本发明的一个实施例中,为提高获取未被占用的主机端口的效率,提高端口映射的效率,电子设备遍历各个主机端口,获取主机端口位图(bitmap)。
电子设备可采用主机端口bitmap来获取未被占用的主机端口。具体的,上述获取未被占用的主机端口的步骤(步骤103),可以细化为如下步骤。
步骤1031,获取主机端口位图bitmap。其中,主机端口bitmap中包括第一预设值与主机端口的对应关系,或者第二预设值与主机端口的对应关系,第一预设值用于指示主机端口处于未被占用的状态,第二预设值用于指示主机端口处于已被占用的状态。
步骤1032,在主机端口bitmap中查找第一预设值对应的主机端口,得到未被占用的主机端口。
电子设备在得到主机端口bitmap之后,若在主机端口bitmap中查找到一主机端口对应的第一预设值,则表示该主机端口未被占用,得到未被占用的主机端口。
在本发明的一个实施例中,电子设备在主机端口bitmap中查找第一预设值对应的主机端口;若主机端口bitmap中第一预设值对应的主机端口的数量大于等于多个容器端口的数量,则获取与多个容器端口的数量相等的数量个第一预设值对应的主机端口,作为未被占用的主机端口;若主机端口bitmap中第一预设值对应的主机端口的数量小于多个容器端口的数量,则获取所有第一预设值对应的主机端口,作为未被占用的主机端口。
在本发明的另一个实施例中,电子设备获取到容器端口之后,遍历主机端口。在遍历到一个主机端口后,根据该主机端口的端口号,从主机端口bitmap中查找到该主机端口对应的状态位。若该状态位为第一预设值,则电子设备确定该主机端口为未被占用的主机端口。电子设备判断当前获取到的未被占用的主机端口的数量是否等于获取到的容器端口的数量。若小于获取到的容器端口的数量,则电子设备判断所有主机端口是否均被遍历。若存在未遍历的主机端口,则电子设备继续遍历主机端口。若不存在未遍历的主机端口,则结束遍历主机端口,当前获取到未被占用的主机端口用于与容器端口建立映射关系。
若等于获取到的容器端口的数量,则电子设备结束遍历主机端口当前获取到未被占用的主机端口用于与容器端口建立映射关系。
在本发明的一个实施例中,主机端口bitmap中的每个预设值表示对应的主机端口的使用状态。其中,使用状态包括未被占用状态和已被占用状态。具体的,若主机端口的使用状态为未被占用状态,则该主机端口对应的预设值为第一预设值,若主机端口的使用状态为已被占用状态,则确定该主机端口对应的预设值为第二预设值。电子设备结合各个主机端口对应的预设值构建主机端口bitmap。
例如,第一预设值“0”,第二预设值“1”。电子设备包括主机端口1-5。电子设备遍历各个主机端口,获取主机端口1的使用状态为未被占用状态,则确定主机端口1对应的预设值为0,获取主机端口2的使用状态为未被占用状态,则确定主机端口2对应的预设值为0,获取主机端口3的使用状态为已被占用状态,则确定主机端口3对应的预设值为1,获取主机端口4的使用状态为未被占用状态,则确定主机端口4对应的预设值为0,获取主机端口5的使用状态为未被占用状态,则确定主机端口5对应的预设值为0。电子设备基于各个主机端口对应的预设值,构建主机端口bitmap,如图2所示。
一个示例中,主机端口bitmap中包括多个数组。每一数组包括预设数量个状态位。对于每一主机端口,电子设备将该主机端口的端口号除以预设数量,得到整数商和余数。该得到的商对应一个数组,得到的余数对应主机端口在数组中的状态位。电子设备遍历各个主机端口,获取各个主机端口的使用状态,按照上述方式确定各个主机端口对应的数组中的状态位设置为相应的预设值。
例如,主机端口的端口号为65535~0之间的数值。每一数组包括预设数量为32个状态位。电子设备获取到容器端口之后,遍历主机端口,默认是从端口号65535依次递减直到端口号0进行遍历。电子设备获取到一主机端口,获取该主机端口的使用状态为未被占用的状态,该主机端口号为863。863/32=26余31。电子设备将26数组中的第31个状态位设置为0。
步骤104,建立多个容器端口与多个未被占用的主机端口的映射关系。
电子设备获取到未被占用的主机端口后,建立多个容器端口与多个未被占用的主机端口的映射关系。例如,电子设备可按照容器端口号的大小顺序,逐一建立容器端口与未被占用的主机端口建立映射关系。再例如,电子设备可随机的建立多个容器端口与多个未被占用的主机端口的映射关系。本发明实施例对此不进行限定。
在本发明的一个实施例中,若主机端口bitmap中第一预设值对应的主机端口的数量大于等于多个容器端口的数量,则获取与多个容器端口的数量相等的数量个第一预设值对应的主机端口,作为未被占用的主机端口,将多个容器端口与未被占用的主机端口之间进行一一映射。如图3所示,图3中容器端口的数量为4个,未被占用的主机端口的数量为4个,故电子设备将容器端口与未被占用的主机端口一一映射。这样,在Host Network模式下,可以避免容器内运行多个应用时引起的端口冲突问题。
在本发明的另一种实施例中,若主机端口bitmap中第一预设值对应的主机端口的数量小于多个容器端口的数量,则获取所有第一预设值对应的主机端口,作为未被占用的主机端口,每个未被占用的主机端口至少对应一个容器端口,且每个容器端口与一个未被占用的主机端口对应。如图4所示,图4中容器端口的数量为5个,未被占用的主机端口的数量为4个,主机端口号为20000的主机端口与容器端口号为8084和8085的两个容器端口对应。这样,在Host Network模式下,可以减少容器内运行多个应用时引起端口冲突的概率。
在本发明的一个实施例中,在建立多个容器端口与未被占用的主机端口的映射关系之后,将主机端口bitmap中未被占用的主机端口对应的第一预设值修改为第二预设值。电子设备及时更新主机端口的状态值,以便下一次遍历浏览。
步骤105,基于建立的映射关系,启动容器。
电子设备基于建立的容器端口与未被占用的主机端口的映射关系,启动容器。
本发明实施例提供的一种容器的启动方法,在主机网络模式下,获取多个容器端口和多个未被占用的主机端口,建立多个容器端口与多个未被占用的主机端口的映射关系。可见本发明实施例中,一个容器的多个容器端口不会映射到同一主机端口上,降低主机网络模式下容器内运行多个应用时端口冲突的程度。
与容器的启动方法实施例相对应,本发明实施例还提供了一种容器的启动装置,如图5所示,图5为本发明实施例提供的容器的启动装置的一种结构图。
该装置包括:
检测单元501,用于检测容器的网络模式是否是主机网络模式;若是主机网络模式,则第一获取单元502;
第一获取单元502,用于获取容器的多个容器端口;
第二获取单元503,用于获取多个未被占用的主机端口;
映射单元504,用于建立多个容器端口与多个未被占用的主机端口的映射关系。
启动单元505,基于建立的映射关系,启动容器。
一个实施例中,第二获取单元503具体可以用于,获取主机端口bitmap,主机端口bitmap中包括第一预设值与主机端口的对应关系,或者第二预设值与主机端口的对应关系,第一预设值用于指示主机端口处于未被占用的状态,第二预设值用于指示主机端口处于已被占用的状态;在主机端口bitmap中查找第一预设值对应的主机端口,得到多个未被占用的主机端口。
一个实施例中,第二获取单元503具体可以用于,在主机端口bitmap中查找第一预设值对应的主机端口;若主机端口bitmap中第一预设值对应的主机端口的数量大于等于多个容器端口的数量,则获取与多个容器端口的数量相等的数量个第一预设值对应的主机端口,作为未被占用的主机端口;若主机端口bitmap中第一预设值对应的主机端口的数量小于多个容器端口的数量,则获取所有第一预设值对应的主机端口,作为未被占用的主机端口。
一个实施例中,第二获取单元503具体可以用于,遍历主机端口,获得第一预设值对应的主机端口;判断获得的第一预设值对应的主机端口的数量是否等于多个容器端口的数量;若否,则返回执行遍历主机端口的步骤;若是,则停止遍历主机端口。
一个实施例中,未被占用的主机端口的数量小于多个容器端口的数量,每一未被占用的主机端口至少对应一个容器端口,且每一容器端口有且仅有一个未被占用的主机端口与容器端口对应;未被占用的主机端口的数量等于多个容器端口的数量,未被占用的主机端口与多个容器端口一一对应。
一个实施例中,本发明实施例提供的容器的启动装置还可以包括:
修改单元,用于将主机端口bitmap中未被占用的主机端口对应的第一预设值修改为第二预设值。电子设备及时更新主机端口的状态值,以便下一次遍历浏览。
本发明实施例提供的一种容器的启动装置,在主机网络模式下,获取多个容器端口和多个未被占用的主机端口,建立多个容器端口与多个未被占用的主机端口的映射关系。可见本发明实施例中,一个容器的多个容器端口不会映射到同一主机端口上,降低主机网络模式下容器内运行多个应用时端口冲突的程度。
与容器的启动方法实施例相对应,本发明实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现如下步骤:
检测容器的网络模式是否是主机网络模式;
若是主机网络模式,则获取容器的多个容器端口;
获取多个未被占用的主机端口;
建立多个容器端口与多个未被占用的主机端口的映射关系;
基于建立的映射关系,启动容器。
本发明实施例提供的电子设备中,在主机网络模式下,获取多个容器端口和多个未被占用的主机端口,建立多个容器端口与多个未被占用的主机端口的映射关系。可见本发明实施例中,一个容器的多个容器端口不会映射到同一主机端口上,降低主机网络模式下容器内运行多个应用时端口冲突的程度。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral PomponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Ne twork Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Applica tion SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种可读存储介质,该可读存储介质中存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中任一所述的容器的启动方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (14)

1.一种容器的启动方法,其特征在于,包括:
检测容器的网络模式是否是主机网络模式;
若是主机网络模式,则获取所述容器的多个容器端口;
获取多个未被占用的主机端口;
建立所述多个容器端口与多个所述未被占用的主机端口的映射关系;
基于建立的映射关系,启动所述容器。
2.根据权利要求1所述的方法,其特征在于,
当所述未被占用的主机端口的数量小于所述多个容器端口的数量时,所述映射关系中每一所述未被占用的主机端口至少对应一个所述容器端口,且每一所述容器端口与一个所述未被占用的主机端口对应;
当所述未被占用的主机端口的数量等于所述多个容器端口的数量时,所述映射关系中所述未被占用的主机端口与所述容器端口一一对应。
3.根据权利要求1或2所述的方法,其特征在于,所述获取多个未被占用的主机端口的步骤,包括:
获取主机端口位图bitmap,所述主机端口bitmap中包括第一预设值与主机端口的对应关系,或者第二预设值与主机端口的对应关系,所述第一预设值用于指示主机端口处于未被占用的状态,所述第二预设值用于指示主机端口处于已被占用的状态;
在所述主机端口bitmap中查找所述第一预设值对应的主机端口,得到多个未被占用的主机端口。
4.根据权利要求3所述的方法,其特征在于,在建立所述多个容器端口与多个所述未被占用的主机端口的映射关系之后,还包括:
将所述主机端口bitmap中未被占用的主机端口对应的所述第一预设值修改为所述第二预设值。
5.根据权利要求3所述的方法,其特征在于,所述在所述主机端口bitmap中查找所述第一预设值对应的主机端口,得到未被占用的主机端口的步骤,包括:
在所述主机端口bitmap中查找所述第一预设值对应的主机端口;
若所述主机端口bitmap中所述第一预设值对应的主机端口的数量大于等于所述多个容器端口的数量,则获取与所述多个容器端口的数量相等的数量个所述第一预设值对应的主机端口,作为未被占用的主机端口;
若所述主机端口bitmap中所述第一预设值对应的主机端口的数量小于所述多个容器端口的数量,则获取所有所述第一预设值对应的主机端口,作为未被占用的主机端口。
6.根据权利要求3所述的方法,其特征在于,所述在所述主机端口bitmap中查找所述第一预设值对应的主机端口,得到未被占用的主机端口的步骤,包括:
遍历主机端口,获得所述第一预设值对应的主机端口;
判断获得的所述第一预设值对应的主机端口的数量是否等于所述多个容器端口的数量;
若否,则返回执行所述遍历主机端口的步骤;
若是,则停止遍历所述主机端口。
7.一种容器的启动装置,其特征在于,包括:
检测单元,用于检测容器的网络模式是否是主机网络模式;
第一获取单元,用于若是主机网络模式,则获取所述容器的多个容器端口;
第二获取单元,用于获取多个未被占用的主机端口;
映射单元,用于建立所述多个容器端口与多个所述未被占用的主机端口的映射关系;
启动单元,用于基于建立的映射关系,启动所述容器。
8.根据权利要求7所述的装置,其特征在于,当所述未被占用的主机端口的数量小于所述多个容器端口的数量时,所述映射关系中每一所述未被占用的主机端口至少对应一个所述容器端口,且每一所述容器端口与一个所述未被占用的主机端口对应;
当所述未被占用的主机端口的数量等于所述多个容器端口的数量时,所述映射关系中所述未被占用的主机端口与所述多个容器端口一一对应。
9.根据权利要求7或8所述的装置,其特征在于,所述第二获取单元,具体用于:
获取主机端口位图bitmap,所述主机端口bitmap中包括第一预设值与主机端口的对应关系,或者第二预设值与主机端口的对应关系,所述第一预设值用于指示主机端口处于未被占用的状态,所述第二预设值用于指示主机端口处于已被占用的状态;
在所述主机端口bitmap中查找所述第一预设值对应的主机端口,得到多个未被占用的主机端口。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
修改单元,用于将所述主机端口bitmap中未被占用的主机端口对应的所述第一预设值修改为所述第二预设值。
11.根据权利要求9所述的装置,其特征在于,所述第二获取单元,具体用于:
在所述主机端口bitmap中查找所述第一预设值对应的主机端口;
若所述主机端口bitmap中所述第一预设值对应的主机端口的数量大于等于所述多个容器端口的数量,则获取与所述多个容器端口的数量相等的数量个所述第一预设值对应的主机端口,作为未被占用的主机端口;
若所述主机端口bitmap中所述第一预设值对应的主机端口的数量小于所述多个容器端口的数量,则获取所有所述第一预设值对应的主机端口,作为未被占用的主机端口。
12.根据权利要求9所述的装置,其特征在于,所述第二获取单元,具体用于:
遍历主机端口,获得所述第一预设值对应的主机端口;
判断获得的所述第一预设值对应的主机端口的数量是否等于所述多个容器端口的数量;
若否,则返回执行所述遍历主机端口的步骤;
若是,则停止遍历所述主机端口。
13.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6任一所述的方法步骤。
14.一种可读存储介质,其特征在于,所述可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一所述的方法步骤。
CN201910804107.4A 2019-08-28 2019-08-28 一种容器的启动方法及装置 Pending CN110554905A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910804107.4A CN110554905A (zh) 2019-08-28 2019-08-28 一种容器的启动方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910804107.4A CN110554905A (zh) 2019-08-28 2019-08-28 一种容器的启动方法及装置

Publications (1)

Publication Number Publication Date
CN110554905A true CN110554905A (zh) 2019-12-10

Family

ID=68736768

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910804107.4A Pending CN110554905A (zh) 2019-08-28 2019-08-28 一种容器的启动方法及装置

Country Status (1)

Country Link
CN (1) CN110554905A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113079207A (zh) * 2021-03-26 2021-07-06 重庆紫光华山智安科技有限公司 一种实现端口或网络高可用的方法、系统、终端及介质
CN114389863A (zh) * 2021-12-28 2022-04-22 绿盟科技集团股份有限公司 一种蜜罐交互的方法、装置、蜜罐网络、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107070717A (zh) * 2017-04-17 2017-08-18 成都精灵云科技有限公司 一种跨主机的Docker容器通讯的方法
CN107924321A (zh) * 2015-09-25 2018-04-17 英特尔公司 针对虚拟机退出的嵌套虚拟化
CN108039975A (zh) * 2017-12-21 2018-05-15 北京搜狐新媒体信息技术有限公司 容器集群管理系统及其应用方法
US20180198853A1 (en) * 2017-01-12 2018-07-12 Red Hat Israel, Ltd. Open virtualized multitenant network scheme servicing virtual machine and container based connectivity
CN108471420A (zh) * 2018-03-29 2018-08-31 上交所技术有限责任公司 基于网络模式识别和匹配的容器安全防御方法与装置
CN108628658A (zh) * 2017-03-17 2018-10-09 华为技术有限公司 一种容器的许可证管理方法及装置
CN110166507A (zh) * 2018-02-12 2019-08-23 北京京东尚科信息技术有限公司 多资源调度方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107924321A (zh) * 2015-09-25 2018-04-17 英特尔公司 针对虚拟机退出的嵌套虚拟化
US20180198853A1 (en) * 2017-01-12 2018-07-12 Red Hat Israel, Ltd. Open virtualized multitenant network scheme servicing virtual machine and container based connectivity
CN108628658A (zh) * 2017-03-17 2018-10-09 华为技术有限公司 一种容器的许可证管理方法及装置
CN107070717A (zh) * 2017-04-17 2017-08-18 成都精灵云科技有限公司 一种跨主机的Docker容器通讯的方法
CN108039975A (zh) * 2017-12-21 2018-05-15 北京搜狐新媒体信息技术有限公司 容器集群管理系统及其应用方法
CN110166507A (zh) * 2018-02-12 2019-08-23 北京京东尚科信息技术有限公司 多资源调度方法和装置
CN108471420A (zh) * 2018-03-29 2018-08-31 上交所技术有限责任公司 基于网络模式识别和匹配的容器安全防御方法与装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113079207A (zh) * 2021-03-26 2021-07-06 重庆紫光华山智安科技有限公司 一种实现端口或网络高可用的方法、系统、终端及介质
CN114389863A (zh) * 2021-12-28 2022-04-22 绿盟科技集团股份有限公司 一种蜜罐交互的方法、装置、蜜罐网络、设备及存储介质
CN114389863B (zh) * 2021-12-28 2024-02-13 绿盟科技集团股份有限公司 一种蜜罐交互的方法、装置、蜜罐网络、设备及存储介质

Similar Documents

Publication Publication Date Title
CN108897628B (zh) 一种分布式锁的实现方法、装置及电子设备
RU2609134C2 (ru) Способ, устройство и сетевое оборудование для получения информации признака
CN107357885B (zh) 数据写入方法及装置、电子设备、计算机存储介质
WO2021197392A1 (zh) 任务队列生成
CN110554905A (zh) 一种容器的启动方法及装置
CN111562884B (zh) 一种数据存储方法、装置及电子设备
US20220107752A1 (en) Data access method and apparatus
CN108614734B (zh) 安全参数索引管理方法及装置
US20240107647A1 (en) Control method, control device and lighting system
US9507813B1 (en) Method and apparatus for hardware-implemented AVL tree updates
CN109976828B (zh) 一种配置文件的方法及装置
US20170147508A1 (en) Device, system and method of accessing data stored in a memory
WO2020029588A1 (zh) 数据读取方法、装置及系统、分布式系统
CN110955460A (zh) 一种服务进程启动方法、装置、电子设备和存储介质
WO2022206170A1 (zh) 一种数据处理方法、服务端及系统
CN112600765B (zh) 一种配置资源调度方法及装置
CN113630300B (zh) 用于报文传输的方法和节点
CN111209304B (zh) 数据处理方法、装置及系统
US20100169322A1 (en) Efficient access of bitmap array with huge usage variance along linear fashion, using pointers
US10904093B2 (en) Cluster system self-organizing method, device, and cluster system
CN111147556A (zh) 一种负载均衡方法、装置、设备及存储介质
CN107305582B (zh) 一种元数据处理方法及装置
CN113326171B (zh) 内存数据处理方法、装置和电子设备
CN110891028B (zh) 确定负载均衡策略的方法、装置及存储介质
WO2024040599A1 (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