【技术实现步骤摘要】
一种容器端口管理的方法,装置,介质及设备
本专利技术涉及计算机领域,尤其涉及计算机端口的管理。
技术介绍
在使用容器的时候,已有容器的bridge的访问模式,需要将容器的ip映射到主机对应的端口上,来让外网访问。现有的技术中,容器ip映射的端口需要用户在创建容器的时候指定,当用户创建多个容器后,已经不知道主机中的哪些端口已经被容器ip映射,这个时候为新建容器指定映射端口的时候,如果指定的端口已经被占用,就容易造成端口冲突。
技术实现思路
为了解决上述技术问题,本专利技术提供了一种容器端口管理的方法,该方法包括:获取容器的端口分配请求,端口分配请求携带分配请求参数;根据分配请求参数选择状态为空闲的端口,将选定端口分配给所述容器;将选定端口的状态标记为已用;分配请求参数包括容器类型和/或预分配端口;根据分配请求参数选择状态为空闲的端口包括以下方式中的一种:当分配请求参数包括容器类型时,根据容器类型在与容器类型对应的预定端口集合中选择状态为空闲的端口;当分配请求参数包括预分配端口时,如预分配端口的状态为空闲,则选择预分配端口;如预分配端口状态为已用,则在所有端口中选择状态为空闲的端口;当分配请求参数包括容器类型和预分配端口时,如预分配端口的状态为空闲,则选择预分配端口;如预分配端口状态为已用,根据容器类型在与容器类型对应的预定端口集合中选择状态为空闲的端口。该方法还包括:确定容器的标识与所述选定端口的标识之间的映射关系;将容器的标识与选定端 ...
【技术保护点】
1.一种容器端口管理方法,其特征在于,/n获取容器的端口分配请求,所述端口分配请求携带分配请求参数;/n根据所述分配请求参数选择状态为空闲的端口,将选定端口分配给所述容器;/n将所述选定端口的状态标记为已用;/n所述分配请求参数包括容器类型和/或预分配端口;/n根据所述分配请求参数选择状态为空闲的端口包括以下方式中的一种:/n当所述分配请求参数包括容器类型时,根据所述容器类型在与所述容器类型对应的预定端口集合中选择状态为空闲的端口;/n当所述分配请求参数包括预分配端口时,如所述预分配端口的状态为空闲,则选择所述预分配端口;如所述预分配端口状态为已用,则在所有端口中选择状态为空闲的端口;/n当所述分配请求参数包括容器类型和预分配端口时,如所述预分配端口的状态为空闲,则选择所述预分配端口;如所述预分配端口状态为已用,根据所述容器类型在与所述容器类型对应的预定端口集合中选择状态为空闲的端口。/n
【技术特征摘要】
1.一种容器端口管理方法,其特征在于,
获取容器的端口分配请求,所述端口分配请求携带分配请求参数;
根据所述分配请求参数选择状态为空闲的端口,将选定端口分配给所述容器;
将所述选定端口的状态标记为已用;
所述分配请求参数包括容器类型和/或预分配端口;
根据所述分配请求参数选择状态为空闲的端口包括以下方式中的一种:
当所述分配请求参数包括容器类型时,根据所述容器类型在与所述容器类型对应的预定端口集合中选择状态为空闲的端口;
当所述分配请求参数包括预分配端口时,如所述预分配端口的状态为空闲,则选择所述预分配端口;如所述预分配端口状态为已用,则在所有端口中选择状态为空闲的端口;
当所述分配请求参数包括容器类型和预分配端口时,如所述预分配端口的状态为空闲,则选择所述预分配端口;如所述预分配端口状态为已用,根据所述容器类型在与所述容器类型对应的预定端口集合中选择状态为空闲的端口。
2.如权利要求1所述的容器端口管理方法,其特征在于,还包括:
确定所述容器的标识与所述选定端口的标识之间的映射关系;
将所述容器的标识与所述选定端口的标识之间的映射关系以及所述选定端口的标识存储在预设数据结构中。
3.如权利要求2所述的容器端口管理方法,其特征在于,将所述容器的标识与所述选定端口的标识之间的映射关系以及所述选定端口的标识存储在预设数据结构中包括:
所述预设数据结构包括树结构和链表结构;将所述容器的标识与所述选定端口的标识之间的映射关系存储在树结构中,将所述选定端口的标识存储在链表结构中。
4.如权利要求3所述的容器端口管理方法,其特征在于,所述链表结构包括一个以上的链表,不同的链表对应于不同的容器类型;
将所述选定端口的标识存储在链表结构中包括:确定所述容器的容器类型,将所述选定端口的标识存储在与所述容器的容器类型对应的链表中。
5.如权利要求4所述的容器端口管理方法,其特征在于,还包括:
接收容器销毁通知,所述容器销毁通知中包括容器的标识;
在所述树结构中搜索所述容器的标识所在的节点,根据此节点确定所述容器的标识对应的端口的标识和容器类型;
删除所述树结构中所述容器的标识所在的节点;
确定所述容器类型对应的链表,从此链表中删除所述端口的标识所在的结点;
将所述端口的状态标记为空闲。
6.如权利要求4所述的容器端口管理方法,其特征在于,还包括:
扫描所述树结构,遍历所述树结构中的容器的标识;
查询每一容器的标识在容器引擎中是否存在;
如所述容器引擎中不存在某一容器的标识,则确定此容器的标识所在的节点所指示的端口为垃圾端口;
删除所述树结构中此容器的标识所在的节点;
确定所述容器的容器类型对应的链表,删除此链表中所述垃圾端口的标识所在的结点;
将所述垃圾端口的状态标记为空闲。
7.如权利要求3-6任一所述的容器端口管理方法,其特征在于,在对所述树结构和/或链表结构进行添加,删除,查询,遍历操作时,对所述树结构和链表结构设置单线程访问限制,操作完成后对所述树结构和链表结构解除所述单线程访问限制。
8.一种容器端口管理装置,包括:
接收模块:用于接收容器的端口分配请求;
端口选择模块:基于所述端口分配请求携带的分配请求参数,选择状态为空闲的端口,将选定端口分配给所述容器;
端口状态标记模块:将所述选定端口...
【专利技术属性】
技术研发人员:陈闯,苗辉,
申请(专利权)人:北京白山耘科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。