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