公开/公告号CN106161104A
专利类型发明专利
公开/公告日2016-11-23
原文格式PDF
申请/专利权人 浪潮电子信息产业股份有限公司;
申请/专利号CN201610698848.5
申请日2016-08-22
分类号H04L12/24(20060101);H04L29/12(20060101);G06F11/10(20060101);G06F11/14(20060101);
代理机构37100 济南信达专利事务所有限公司;
代理人杜鹃花
地址 250101 山东省济南市高新区浪潮路1036号
入库时间 2023-06-19 01:00:26
法律状态公告日
法律状态信息
法律状态
2020-08-14
专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L12/24 变更前: 变更后: 申请日:20160822
专利权人的姓名或者名称、地址的变更
2020-06-05
专利权的转移 IPC(主分类):H04L12/24 登记生效日:20200519 变更前: 变更后: 申请日:20160822
专利申请权、专利权的转移
2019-06-04
授权
授权
2016-12-21
实质审查的生效 IPC(主分类):H04L12/24 申请日:20160822
实质审查的生效
2016-11-23
公开
公开
技术领域
本发明涉及一种Docker技术领域,具体地说是一种基于Docker事件自动化配置Docker容器同主机网络IP的方法。
背景技术
Docker是PaaS提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在Github上, 基于go语言并遵从Apache2.0协议开源。Docker 使用客户端-服务器(C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。基于Linux Bridge和Namespace可以实现Docker容器使用同主机的本地网络,使得外部网络与Docker容器可以方便地进行相互访问。整个框架分为服务端和客户端,它们通过RESTful URL的形式实现通信。
申请号为CN201510375226.4,申请名称为:基于Docker的配置管理方式及装置。公开了一种基于Docker的配置管理方式,应用于包括多个容器的Docker运行环境中,包括:获取Docker运行环境中的多个容器的配置需求;确定与配置需求相应的底层系统命令;依据配置需求并调用底层系统命令来对Docker运行环境中的多个容器进行配置管理。解决了原生Docker对其内部虚拟化的容器的配置管理方式不完善的问题。
但是现有技术中,当后台发生Docker事件这种异常情况时,Docker容器本身并不具备环境自恢复的功能,比如重启Docker容器时释放IP后不会再次申请IP。如何保证当后台发生Docker事件这种异常情况时,Docker容器与外部网络的相互访问能够不受影响,是目前本技术领域人员迫切需要解决的问题。
发明内容
本发明的技术任务是提供一种基于Docker事件自动化配置Docker容器同主机网络IP的方法,来保证当后台发生Docker事件这种异常情况时,Docker容器与外部网络的相互访问能够不受影响。
本发明的技术任务是按以下方式实现的,
一种基于Docker事件自动化配置Docker容器同主机网络IP的方法,步骤如下:
(1)、主机搭建好Docker环境后,客户端调用脚本初始化网桥br0连接到主机网卡eth1上,服务端数据库保存主机的网络信息,Docker容器创建成功;
(2)、客户端增加一个监听线程模块,监听线程模块用于对Docker容器提供Docker事件的实时监测;
(3)、发生Docker事件时,客户端的监听线程模块监测到该Docker事件,把Docker事件通知上报给服务端,以RESTful URL方式进行通信;Docker事件通知内包括如下信息:Docker容器所在主机IP、Docker事件类型和Docker容器ID;
(4)、服务端接收到Docker事件通知后,根据Docker容器ID检查其IP配置,根据Docker事件类型调用相应的流程,最终将接收到的参数拼装成RESTful URL的形式下发给Docker容器所在主机执行相应的脚本。
步骤(2)中的Docker事件包括Docker容器启动(start)、Docker容器停止(stop)或Docker容器销毁(destroy)。
基于CentOS release 7操作系统搭建1.11.2版本的Docker环境;服务端编程基于Go语言实现;客户端基于Python语言实现;客户端配置Docker容器IP的初始化网络的脚本、申请IP的脚本和释放IP的脚本基于Linux Shell语言实现。
服务端基于Go语言版本为1.4.2,使用Beego框架方便实现RESTful URL消息通信和数据库的数据表处理;客户端基于Python语言版本为2.7,能够完善支持多线程技术及RESTful URL消息通信。
一种基于Docker事件自动化配置Docker容器同主机网络IP的方法,步骤如下:
(1)、主机搭建好Docker环境后,客户端调用脚本初始化网桥br0连接到主机网卡eth1上,服务端数据库保存主机的网络信息,Docker容器创建成功;
(2)、客户端增加一个监听线程模块,监听线程模块用于对Docker容器提供Docker事件的实时监测;
(3)、发生Docker事件为Docker容器重启(restart)时,客户端的监听线程监测到该Docker事件,把Docker事件通知上报给服务端,以RESTful URL方式进行通信;Docker事件通知内包括如下信息:Docker容器所在主机IP、Docker事件类型和Docker容器ID;
(4)、服务端接收到Docker事件通知后,根据Docker容器ID检查其IP配置,根据Docker事件类型先调用释放IP再调用申请IP的流程,通过二次调用处理来保证该Docker容器自动化配置IP,最终将接收到的参数拼装成RESTful URL的形式下发给Docker容器所在主机执行相应的脚本。
本发明的一种基于Docker事件自动化配置Docker容器同主机网络IP的方法具有以下优点:
1、Docker创建容器时可以使用同主机的本地网络,使得外部网络与Docker容器可以方便地进行相互访问;
2、利用多线程技术和RESTful URL形式通信,实现基于Docker事件自动化配置Docker容器同主机网络IP,支持多种Docker事件触发,弥补Docker原生环境不能自适应的缺陷,这样保证不论在正常还是异常情况下,Docker容器的网络环境都是稳定且自适应的,从而不影响Docker容器对外提供服务。
附图说明
下面结合附图对本发明进一步说明。
附图1为一种基于Docker事件自动化配置Docker容器同主机网络IP的方法的流程图。
具体实施方式
参照说明书附图和具体实施例对本发明的一种基于Docker事件自动化配置Docker容器同主机网络IP的方法作以下详细地说明。
实施例1:
本发明的一种基于Docker事件自动化配置Docker容器同主机网络IP的方法, 步骤如下:
(1)、主机搭建好Docker环境后,客户端调用脚本初始化网桥br0连接到主机网卡eth1上,服务端数据库保存主机的网络信息,Docker容器创建成功;
(2)、客户端增加一个监听线程模块,监听线程模块用于对Docker容器提供Docker事件的实时监测;
(3)、发生Docker事件时,客户端的监听线程模块监测到该Docker事件,把Docker事件通知上报给服务端,以RESTful URL方式进行通信;Docker事件通知内包括如下信息:Docker容器所在主机IP、Docker事件类型和Docker容器ID;
(4)、服务端接收到Docker事件通知后,根据Docker容器ID检查其IP配置,根据Docker事件类型调用相应的流程,最终将接收到的参数拼装成RESTful URL的形式下发给Docker容器所在主机执行相应的脚本。
步骤(2)中的Docker事件包括Docker容器启动(start)、Docker容器停止(stop)或Docker容器销毁(destroy)。
基于CentOS release 7操作系统搭建1.11.2版本的Docker环境;服务端编程基于Go语言实现;客户端基于Python语言实现;客户端配置Docker容器IP的初始化网络的脚本、申请IP的脚本和释放IP的脚本基于Linux Shell语言实现。
服务端基于Go语言版本为1.4.2,使用Beego框架方便实现RESTful URL消息通信和数据库的数据表处理;客户端基于Python语言版本为2.7,能够完善支持多线程技术及RESTful URL消息通信。
实施例2:
本发明的一种基于Docker事件自动化配置Docker容器同主机网络IP的方法,步骤如下:
(1)、主机搭建好Docker环境后,客户端调用脚本初始化网桥br0连接到主机网卡eth1上,服务端数据库保存主机的网络信息,Docker容器创建成功;
(2)、客户端增加一个监听线程模块,监听线程模块用于对Docker容器提供Docker事件的实时监测;
(3)、发生Docker事件为Docker容器重启(restart)时,客户端的监听线程监测到该Docker事件,把Docker事件通知上报给服务端,以RESTful URL方式进行通信;Docker事件通知内包括如下信息:Docker容器所在主机IP、Docker事件类型和Docker容器ID;
(4)、服务端接收到Docker事件通知后,根据Docker容器ID检查其IP配置,根据Docker事件类型先调用释放IP再调用申请IP的流程,通过二次调用处理来保证该Docker容器自动化配置IP,最终将接收到的参数拼装成RESTful URL的形式下发给Docker容器所在主机执行相应的脚本。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
机译: 主机配置控制方法,例如IP网络涉及中继配置请求,该配置请求由主机传输,并具有相对于另一个主机的媒体访问控制地址作为源地址,从交换机到服务器
机译: 自动化网络具有基于数据包的主机和客户端的通信以及操作自动化网络的方法
机译: 一种采用事件驱动的编程框架的网络事件管理方法和主机