本發(fā)明涉及云計(jì)算軟件應(yīng)用技術(shù)領(lǐng)域,具體涉及一種支持Docker環(huán)境多網(wǎng)絡(luò)模式的管理方法,一種基于Beego框架和Mariadb數(shù)據(jù)庫(kù)支持Docker環(huán)境多網(wǎng)絡(luò)模式的管理方法,保證Docker環(huán)境的容器在可控范圍內(nèi)靈活地使用網(wǎng)絡(luò)。Docker環(huán)境初始化過(guò)程中配置好每個(gè)網(wǎng)絡(luò)的必要參數(shù)和可用IP,Docker環(huán)境創(chuàng)建容器時(shí)選定網(wǎng)絡(luò)模式后,后臺(tái)數(shù)據(jù)庫(kù)在可用IP池中分配IP給Docker容器使用;Docker環(huán)境銷毀容器時(shí)釋放IP,后臺(tái)數(shù)據(jù)庫(kù)回收此IP并重新置為可用待分配狀態(tài)。
背景技術(shù):
Docker是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的Linux機(jī)器上。Docker創(chuàng)建容器時(shí)可以根據(jù)不同場(chǎng)景使用不同網(wǎng)絡(luò)模式,除了原生的Brdige、Host、Container和None模式外,還有支持多主機(jī)通信的Overlay模式,以及第三方插件如Weave、Flannel、Kuryr等。多網(wǎng)絡(luò)模式同時(shí)也帶來(lái)了無(wú)法統(tǒng)一管理的困擾,因此我們需要一種支持Docker環(huán)境多網(wǎng)絡(luò)模式的管理方法,來(lái)保障Docker容器的靈活使用。
Beego是一個(gè)快速開發(fā)Go應(yīng)用的http框架,可以用來(lái)快速開發(fā)API、Web、后端服務(wù)等各種應(yīng)用。它是基于八大獨(dú)立的模塊之上構(gòu)建的,是一個(gè)高度解耦的框架。Beego 的分支Orm即對(duì)象關(guān)系映射,通過(guò)類或者結(jié)構(gòu)體與數(shù)據(jù)庫(kù)表進(jìn)行一一對(duì)應(yīng),可以基本完成對(duì)數(shù)據(jù)庫(kù)的增刪改查操作。Beego的Orm操作的后臺(tái)數(shù)據(jù)庫(kù)為Mariadb,作為MySQL的一個(gè)分支,主要有開源社區(qū)維護(hù),采用GPL授權(quán)許可,其目的是完全兼容MySQL,包括API和命令行,使之輕松成為MySQL的代替品,但在擴(kuò)展功能、存儲(chǔ)引擎以及一些新的功能改進(jìn)方面都強(qiáng)過(guò)MySQL。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問(wèn)題是:本發(fā)明針對(duì)以上問(wèn)題,提供一種支持Docker環(huán)境多網(wǎng)絡(luò)模式的管理方法?;贐eego框架和Mariadb數(shù)據(jù)庫(kù)來(lái)管理Docker環(huán)境多網(wǎng)絡(luò)模式,同時(shí)支持多網(wǎng)絡(luò)運(yùn)行,彌補(bǔ)Docker環(huán)境多網(wǎng)絡(luò)無(wú)統(tǒng)一管理的不足和缺陷,服務(wù)端通過(guò)Beego框架的Orm操作后臺(tái)數(shù)據(jù)庫(kù),這樣可以幫助開發(fā)人員在良好的網(wǎng)絡(luò)規(guī)劃下更好的使用Docker容器,同時(shí)有效的進(jìn)行Docker容器的網(wǎng)絡(luò)管理。解決在生產(chǎn)環(huán)境中,支持Docker環(huán)境多網(wǎng)絡(luò)模式的管理,靈活控制Docker容器的IP申請(qǐng)與釋放,從而更方便地使用Docker容器。
本發(fā)明所采用的技術(shù)方案為:
一種支持Docker環(huán)境多網(wǎng)絡(luò)模式的管理方法,所述方法基于Beego框架和Mariadb數(shù)據(jù)庫(kù),在生產(chǎn)環(huán)境下完成Docker環(huán)境網(wǎng)絡(luò)控制和靈活管理,使得Docker容器在可控的范圍內(nèi)更靈活地使用多種網(wǎng)絡(luò)模式,并且支持Docker環(huán)境多種模式的網(wǎng)絡(luò)并存。
所述方法通過(guò)Docker環(huán)境初始化,配置每個(gè)網(wǎng)絡(luò)必要的參數(shù),后臺(tái)Mariadb數(shù)據(jù)庫(kù)根據(jù)網(wǎng)絡(luò)-子網(wǎng)-IP的形式依次建立數(shù)據(jù)表并保存數(shù)據(jù);Docker環(huán)境創(chuàng)建容器前首先申請(qǐng)IP,后臺(tái)數(shù)據(jù)庫(kù)根據(jù)其需要的網(wǎng)絡(luò)模式分配可用IP,Docker環(huán)境攜帶此IP創(chuàng)建容器。
所述Docker環(huán)境銷毀容器時(shí)釋放IP,后臺(tái)數(shù)據(jù)庫(kù)回收此IP并重新置為可用待分配狀態(tài)。
所述方法實(shí)現(xiàn)步驟如下:
A:主機(jī)搭建Docker環(huán)境,配置各個(gè)模式網(wǎng)絡(luò)的基本信息,后臺(tái)數(shù)據(jù)庫(kù)建立數(shù)據(jù)表并保存信息;
B:Docker環(huán)境創(chuàng)建容器時(shí),首先需要申請(qǐng)一個(gè)IP,后臺(tái)數(shù)據(jù)庫(kù)檢索對(duì)應(yīng)的網(wǎng)絡(luò)模式分配可用IP;容器攜帶此IP進(jìn)行創(chuàng)建,如創(chuàng)建成功,通知數(shù)據(jù)庫(kù)更新該IP狀態(tài),返回Docker環(huán)境;如創(chuàng)建失敗,返回Docker環(huán)境,通知數(shù)據(jù)庫(kù)重置該IP狀態(tài);
C:Docker環(huán)境銷毀容器時(shí),釋放IP后,后臺(tái)數(shù)據(jù)庫(kù)查到該IP并重置其狀態(tài),返回Docker環(huán)境釋放成功。
Mairadb數(shù)據(jù)庫(kù)的網(wǎng)絡(luò)部分?jǐn)?shù)據(jù)庫(kù)建立Network、Subnet、IP三張表,其中Network表記錄每個(gè)網(wǎng)絡(luò)的基本信息,映射一到多個(gè)Subnet表;Subnet表記錄每個(gè)網(wǎng)絡(luò)的可用IP段,映射一到多個(gè)IP表;IP表記錄每個(gè)IP及其是否可用的狀態(tài)。
所述方法實(shí)現(xiàn)基于CentOS release 7操作系統(tǒng),基于Etcd和Swarm搭建1.11.1版本的Docker集群環(huán)境,服務(wù)端編程基于Go語(yǔ)言編程實(shí)現(xiàn)。
所述Go語(yǔ)言版本為1.5.3 linux/amd64。
所述Beego版本為1.6.4。
所述Mairadb數(shù)據(jù)庫(kù)版本為5.5.47。
本發(fā)明的有益效果為:
本發(fā)明方法集成在生產(chǎn)環(huán)境下Docker集群管理環(huán)境工程中,Docker容器可根據(jù)使用創(chuàng)建自主選擇需要的網(wǎng)絡(luò)模式,從而完成Docker環(huán)境網(wǎng)絡(luò)的控制管理與容器的靈活使用。
附圖說(shuō)明
圖1為Docker環(huán)境初始化網(wǎng)絡(luò)流程圖;
圖2為Docker環(huán)境創(chuàng)建容器申請(qǐng)IP流程;
圖3為Docker容器銷毀容器釋放IP流程。
具體實(shí)施方式
根據(jù)說(shuō)明書附圖,結(jié)合具體實(shí)施方式對(duì)本發(fā)明進(jìn)一步說(shuō)明:
實(shí)施例1:
一種支持Docker環(huán)境多網(wǎng)絡(luò)模式的管理方法,所述方法基于Beego框架和Mariadb數(shù)據(jù)庫(kù),在生產(chǎn)環(huán)境下完成Docker環(huán)境網(wǎng)絡(luò)控制和靈活管理,使得Docker容器在可控的范圍內(nèi)更靈活地使用多種網(wǎng)絡(luò)模式,并且支持Docker環(huán)境多種模式的網(wǎng)絡(luò)并存。
實(shí)施例2
如圖1、2所示,在實(shí)施例1的基礎(chǔ),本實(shí)施例所述方法通過(guò)Docker環(huán)境初始化,配置每個(gè)網(wǎng)絡(luò)必要的參數(shù),后臺(tái)Mariadb數(shù)據(jù)庫(kù)根據(jù)網(wǎng)絡(luò)-子網(wǎng)-IP的形式依次建立數(shù)據(jù)表并保存數(shù)據(jù);Docker環(huán)境創(chuàng)建容器前首先申請(qǐng)IP,后臺(tái)數(shù)據(jù)庫(kù)根據(jù)其需要的網(wǎng)絡(luò)模式分配可用IP,Docker環(huán)境攜帶此IP創(chuàng)建容器。
實(shí)施例3
如圖3所示,在實(shí)施例2的基礎(chǔ),本實(shí)施例所述Docker環(huán)境銷毀容器時(shí)釋放IP,后臺(tái)數(shù)據(jù)庫(kù)回收此IP并重新置為可用待分配狀態(tài)。
實(shí)施例4
在實(shí)施例3的基礎(chǔ),本實(shí)施例所述方法實(shí)現(xiàn)步驟如下:
A:主機(jī)搭建Docker環(huán)境,用戶在界面配置各個(gè)模式網(wǎng)絡(luò)的基本信息,如CIDR段、網(wǎng)關(guān)、可用IP段(起止IP)等,后臺(tái)數(shù)據(jù)庫(kù)建立數(shù)據(jù)表并保存信息;
B:Docker環(huán)境創(chuàng)建容器時(shí),首先需要申請(qǐng)一個(gè)IP,后臺(tái)數(shù)據(jù)庫(kù)檢索對(duì)應(yīng)的網(wǎng)絡(luò)模式分配可用IP;容器攜帶此IP進(jìn)行創(chuàng)建,如創(chuàng)建成功,通知數(shù)據(jù)庫(kù)更新該IP狀態(tài),返回Docker環(huán)境;如創(chuàng)建失敗,返回Docker環(huán)境,通知數(shù)據(jù)庫(kù)重置該IP狀態(tài);
C:Docker環(huán)境銷毀容器時(shí),釋放IP后,后臺(tái)數(shù)據(jù)庫(kù)查到該IP并重置其狀態(tài),返回Docker環(huán)境釋放成功。
實(shí)施例5
在任一實(shí)施例1-4的基礎(chǔ),本實(shí)施例Mairadb數(shù)據(jù)庫(kù)的網(wǎng)絡(luò)部分?jǐn)?shù)據(jù)庫(kù)建立Network、Subnet、IP三張表,其中Network表記錄每個(gè)網(wǎng)絡(luò)的基本信息,映射一到多個(gè)Subnet表;Subnet表記錄每個(gè)網(wǎng)絡(luò)的可用IP段,映射一到多個(gè)IP表;IP表記錄每個(gè)IP及其是否可用的狀態(tài)。
實(shí)施例6
在實(shí)施例5的基礎(chǔ),本實(shí)施例所述方法實(shí)現(xiàn)基于CentOS release 7操作系統(tǒng),基于Etcd和Swarm搭建1.11.1版本的Docker集群環(huán)境,服務(wù)端編程基于Go語(yǔ)言編程實(shí)現(xiàn)。
實(shí)施例7
在實(shí)施例6的基礎(chǔ),本實(shí)施例所述Go語(yǔ)言版本為1.5.3 linux/amd64。
實(shí)施例8
在實(shí)施例7的基礎(chǔ),本實(shí)施例所述Beego版本為1.6.4。
其中的路由功能用來(lái)實(shí)現(xiàn)從請(qǐng)求地址到實(shí)現(xiàn)方法,可以在界面配置網(wǎng)絡(luò)初始化參數(shù);ORM模塊實(shí)現(xiàn)對(duì)后臺(tái)數(shù)據(jù)庫(kù)的增刪改查等操作,可以靈活操作Mairadb數(shù)據(jù)庫(kù)。
實(shí)施例9
在實(shí)施例8的基礎(chǔ),本實(shí)施例所述Mairadb數(shù)據(jù)庫(kù)版本為5.5.47。
實(shí)施方式僅用于說(shuō)明本發(fā)明,而并非對(duì)本發(fā)明的限制,有關(guān)技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護(hù)范圍應(yīng)由權(quán)利要求限定。