首页> 中国专利> 一种基于Docker事件自动化配置Docker容器同主机网络IP的方法

一种基于Docker事件自动化配置Docker容器同主机网络IP的方法

摘要

本发明公开了一种基于Docker事件自动化配置Docker容器同主机网络IP的方法,属于Docker技术领域,本发明能够保证当后台发生Docker事件这种异常情况时,Docker容器与外部网络的相互访问能够不受影响。采用的技术方案为:步骤如下:主机搭建好Docker环境后,客户端调用脚本初始化网桥br0连接到主机网卡eth1上,服务端数据库保存主机的网络信息,Docker容器创建成功;发生Docker事件时,客户端的监听线程模块监测到该Docker事件,把Docker事件通知上报给服务端,以RESTful URL方式进行通信;服务端接收到Docker事件通知后,根据Docker容器ID检查其IP配置,根据Docker事件类型调用相应的流程,最终将接收到的参数拼装成RESTful URL的形式下发给Docker容器所在主机执行相应的脚本。

著录项

  • 公开/公告号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容器所在主机执行相应的脚本。

通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

除说明书所述的技术特征外,均为本专业技术人员的已知技术。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号