本发明涉及云计算软件应用技术领域,具体涉及一种支持Docker环境多网络模式的管理方法,一种基于Beego框架和Mariadb数据库支持Docker环境多网络模式的管理方法,保证Docker环境的容器在可控范围内灵活地使用网络。Docker环境初始化过程中配置好每个网络的必要参数和可用IP,Docker环境创建容器时选定网络模式后,后台数据库在可用IP池中分配IP给Docker容器使用;Docker环境销毁容器时释放IP,后台数据库回收此IP并重新置为可用待分配状态。
背景技术:
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上。Docker创建容器时可以根据不同场景使用不同网络模式,除了原生的Brdige、Host、Container和None模式外,还有支持多主机通信的Overlay模式,以及第三方插件如Weave、Flannel、Kuryr等。多网络模式同时也带来了无法统一管理的困扰,因此我们需要一种支持Docker环境多网络模式的管理方法,来保障Docker容器的灵活使用。
Beego是一个快速开发Go应用的http框架,可以用来快速开发API、Web、后端服务等各种应用。它是基于八大独立的模块之上构建的,是一个高度解耦的框架。Beego 的分支Orm即对象关系映射,通过类或者结构体与数据库表进行一一对应,可以基本完成对数据库的增删改查操作。Beego的Orm操作的后台数据库为Mariadb,作为MySQL的一个分支,主要有开源社区维护,采用GPL授权许可,其目的是完全兼容MySQL,包括API和命令行,使之轻松成为MySQL的代替品,但在扩展功能、存储引擎以及一些新的功能改进方面都强过MySQL。
技术实现要素:
本发明要解决的技术问题是:本发明针对以上问题,提供一种支持Docker环境多网络模式的管理方法。基于Beego框架和Mariadb数据库来管理Docker环境多网络模式,同时支持多网络运行,弥补Docker环境多网络无统一管理的不足和缺陷,服务端通过Beego框架的Orm操作后台数据库,这样可以帮助开发人员在良好的网络规划下更好的使用Docker容器,同时有效的进行Docker容器的网络管理。解决在生产环境中,支持Docker环境多网络模式的管理,灵活控制Docker容器的IP申请与释放,从而更方便地使用Docker容器。
本发明所采用的技术方案为:
一种支持Docker环境多网络模式的管理方法,所述方法基于Beego框架和Mariadb数据库,在生产环境下完成Docker环境网络控制和灵活管理,使得Docker容器在可控的范围内更灵活地使用多种网络模式,并且支持Docker环境多种模式的网络并存。
所述方法通过Docker环境初始化,配置每个网络必要的参数,后台Mariadb数据库根据网络-子网-IP的形式依次建立数据表并保存数据;Docker环境创建容器前首先申请IP,后台数据库根据其需要的网络模式分配可用IP,Docker环境携带此IP创建容器。
所述Docker环境销毁容器时释放IP,后台数据库回收此IP并重新置为可用待分配状态。
所述方法实现步骤如下:
A:主机搭建Docker环境,配置各个模式网络的基本信息,后台数据库建立数据表并保存信息;
B:Docker环境创建容器时,首先需要申请一个IP,后台数据库检索对应的网络模式分配可用IP;容器携带此IP进行创建,如创建成功,通知数据库更新该IP状态,返回Docker环境;如创建失败,返回Docker环境,通知数据库重置该IP状态;
C:Docker环境销毁容器时,释放IP后,后台数据库查到该IP并重置其状态,返回Docker环境释放成功。
Mairadb数据库的网络部分数据库建立Network、Subnet、IP三张表,其中Network表记录每个网络的基本信息,映射一到多个Subnet表;Subnet表记录每个网络的可用IP段,映射一到多个IP表;IP表记录每个IP及其是否可用的状态。
所述方法实现基于CentOS release 7操作系统,基于Etcd和Swarm搭建1.11.1版本的Docker集群环境,服务端编程基于Go语言编程实现。
所述Go语言版本为1.5.3 linux/amd64。
所述Beego版本为1.6.4。
所述Mairadb数据库版本为5.5.47。
本发明的有益效果为:
本发明方法集成在生产环境下Docker集群管理环境工程中,Docker容器可根据使用创建自主选择需要的网络模式,从而完成Docker环境网络的控制管理与容器的灵活使用。
附图说明
图1为Docker环境初始化网络流程图;
图2为Docker环境创建容器申请IP流程;
图3为Docker容器销毁容器释放IP流程。
具体实施方式
根据说明书附图,结合具体实施方式对本发明进一步说明:
实施例1:
一种支持Docker环境多网络模式的管理方法,所述方法基于Beego框架和Mariadb数据库,在生产环境下完成Docker环境网络控制和灵活管理,使得Docker容器在可控的范围内更灵活地使用多种网络模式,并且支持Docker环境多种模式的网络并存。
实施例2
如图1、2所示,在实施例1的基础,本实施例所述方法通过Docker环境初始化,配置每个网络必要的参数,后台Mariadb数据库根据网络-子网-IP的形式依次建立数据表并保存数据;Docker环境创建容器前首先申请IP,后台数据库根据其需要的网络模式分配可用IP,Docker环境携带此IP创建容器。
实施例3
如图3所示,在实施例2的基础,本实施例所述Docker环境销毁容器时释放IP,后台数据库回收此IP并重新置为可用待分配状态。
实施例4
在实施例3的基础,本实施例所述方法实现步骤如下:
A:主机搭建Docker环境,用户在界面配置各个模式网络的基本信息,如CIDR段、网关、可用IP段(起止IP)等,后台数据库建立数据表并保存信息;
B:Docker环境创建容器时,首先需要申请一个IP,后台数据库检索对应的网络模式分配可用IP;容器携带此IP进行创建,如创建成功,通知数据库更新该IP状态,返回Docker环境;如创建失败,返回Docker环境,通知数据库重置该IP状态;
C:Docker环境销毁容器时,释放IP后,后台数据库查到该IP并重置其状态,返回Docker环境释放成功。
实施例5
在任一实施例1-4的基础,本实施例Mairadb数据库的网络部分数据库建立Network、Subnet、IP三张表,其中Network表记录每个网络的基本信息,映射一到多个Subnet表;Subnet表记录每个网络的可用IP段,映射一到多个IP表;IP表记录每个IP及其是否可用的状态。
实施例6
在实施例5的基础,本实施例所述方法实现基于CentOS release 7操作系统,基于Etcd和Swarm搭建1.11.1版本的Docker集群环境,服务端编程基于Go语言编程实现。
实施例7
在实施例6的基础,本实施例所述Go语言版本为1.5.3 linux/amd64。
实施例8
在实施例7的基础,本实施例所述Beego版本为1.6.4。
其中的路由功能用来实现从请求地址到实现方法,可以在界面配置网络初始化参数;ORM模块实现对后台数据库的增删改查等操作,可以灵活操作Mairadb数据库。
实施例9
在实施例8的基础,本实施例所述Mairadb数据库版本为5.5.47。
实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。