本發(fā)明涉及計算機軟件應(yīng)用的技術(shù)領(lǐng)域,特別是涉及一種搭建及使用安全docker私有倉庫的方法及裝置。
背景技術(shù):
docker是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到linux機器上。docker創(chuàng)建容器的鏡像存儲支持多種方式,除了開源或公共項目需要使用默認的公共倉庫外,還有適合特殊定制某些東西的docker命令實現(xiàn)的保存/載入方式。但這些方式綜合考慮網(wǎng)絡(luò)帶寬、ssl安全性、監(jiān)控及磁盤存儲等要求后,并不適用于企業(yè)的生產(chǎn)環(huán)境。現(xiàn)在亟需尋求一種方式彌補docker公共倉庫使用不便和不安全的缺陷,進而滿足網(wǎng)絡(luò)帶寬、ssl安全性、磁盤存儲、監(jiān)控等要求。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種搭建及使用安全docker私有倉庫的方法及裝置,彌補了docker公共倉庫使用不便和不安全的缺陷,確保了安全性和方便管理,從而同時滿足了網(wǎng)絡(luò)帶寬、ssl安全性、磁盤存儲、監(jiān)控等要求。
為了實現(xiàn)上述目的,本發(fā)明采用以下的技術(shù)方案:
一種搭建及使用安全docker私有倉庫的方法,包括以下步驟:
a1:下載dockerregistry官方鏡像倉庫;
a2:創(chuàng)建lvm掛載盤用于掛載docker鏡像;
a3:服務(wù)端使用openssl創(chuàng)建證書,然后加載證書到docker配置中;
a4:運行dockerregistry服務(wù)構(gòu)建docker私有倉庫;
a5:客戶端獲取服務(wù)端的證書并保存,然后再次加載證書到docker配置中;
a6:用戶創(chuàng)建docker鏡像,并將其重命名;
a7:將docker鏡像推送到docker私有倉庫;
a8:服務(wù)端驗證docker鏡像是否保存成功,若保存成功,則其他用戶則可拉取該docker鏡像,若保存失敗,則返回a6。
進一步地,在a1之前,還包括:在服務(wù)端搭建docker環(huán)境。
進一步地,在a2之后,還包括:
服務(wù)端從dockerregistry官方鏡像倉庫拉取一個鏡像,防火墻同時開放5000端口對外監(jiān)聽。
進一步地,所述加載證書到docker配置中,包括:通過修改docker的配置,加載openssl生成的證書到docker配置中。
進一步地,在a5之前,還包括:
服務(wù)端將證書下發(fā)給使用docker私有倉庫鏡像的客戶端。
基于上述的一種搭建及使用安全docker私有倉庫的方法的一種搭建及使用安全docker私有倉庫的裝置,包括:
下載模塊,用于下載dockerregistry官方鏡像倉庫;
第一創(chuàng)建模塊,用于創(chuàng)建lvm掛載盤用于掛載docker鏡像;
第一加載模塊,用于服務(wù)端使用openssl創(chuàng)建證書,然后加載證書到docker配置中;
運行模塊,用于運行dockerregistry服務(wù)構(gòu)建docker私有倉庫;
第二加載模塊,用于客戶端獲取服務(wù)端的證書并保存,然后再次加載證書到docker配置中;
第二創(chuàng)建模塊,用于用戶創(chuàng)建docker鏡像,并將其重命名;
推送模塊,用于將docker鏡像推送到docker私有倉庫;
驗證模塊,用于服務(wù)端驗證docker鏡像是否保存成功,若保存成功,則其他用戶則可拉取該docker鏡像,若保存失敗,則進入第二創(chuàng)建模塊。
進一步地,還包括:
搭建模塊,用于在服務(wù)端搭建docker環(huán)境。
進一步地,還包括:
拉取模塊,用于服務(wù)端從dockerregistry官方鏡像倉庫拉取一個鏡像,防火墻同時開放5000端口對外監(jiān)聽。
進一步地,還包括:
下發(fā)模塊,服務(wù)端將證書下發(fā)給使用docker私有倉庫鏡像的客戶端。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點:
本發(fā)明借助開源的dockerregistry鏡像和openssl工具搭建安全的docker私有倉庫,使得docker鏡像在可控的范圍內(nèi)更靈活和方便地提供使用;dockerregistry構(gòu)建自己的docker私有倉庫,使用opensslopenssl創(chuàng)建證書,然后加載證書到docker配置中,相當(dāng)于對鏡像進行了網(wǎng)絡(luò)加固和保護,滿足了當(dāng)前客戶對其性能提升和更高的安全要求考慮的要求,這樣管理員將倉庫放置在公司自有網(wǎng)絡(luò)內(nèi)部可加快用戶鏡像的推送與拉取,彌補了docker公共倉庫使用不便和不安全的缺陷,并且確保了安全性和方便管理,從而同時滿足了網(wǎng)絡(luò)帶寬、ssl安全性、磁盤存儲、監(jiān)控等要求。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例。
圖1是本發(fā)明一種搭建及使用安全docker私有倉庫的方法流程示意圖。
圖2為本發(fā)明一種搭建及使用安全docker私有倉庫的方法的另一種流程示意圖。
圖3是本發(fā)明一種搭建及使用安全docker私有倉庫的方法的結(jié)構(gòu)示意圖。
圖4是本發(fā)明一種搭建及使用安全docker私有倉庫的裝置的另一種結(jié)構(gòu)示意圖。
具體實施方式
為了便于理解,對本發(fā)明中出現(xiàn)的部分名詞作以下解釋說明:
docker,一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的linux機器上,也可以實現(xiàn)虛擬化,容器是完全使用沙箱機制,相互之間不會有任何接口。
dockerregistry:是一個存儲和分享docker鏡像的服務(wù)。
lvm,英文全稱為logicalvolumemanager,中文翻譯為邏輯卷管理,它是linux環(huán)境下對磁盤分區(qū)進行管理的一種機制,它由heinzmauelshagen在linux2.4內(nèi)核上實現(xiàn)。
lvm掛載盤,磁盤是采用的lvm卷的分區(qū)。
openssl,英文全稱為opensecuresocketslayer,中文翻譯為開放式安全套接層協(xié)議,是一個安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及ssl協(xié)議,并提供豐富的應(yīng)用程序供測試或其它目的使用。
鏡像,一種文件存儲形式,將特定的一系列文件按照一定的格式制作成單一的文件,以方便用戶下載和使用。
下面結(jié)合附圖和實施例,對本發(fā)明的具體實施方式作進一步詳細描述:
實施例1
本發(fā)明一種搭建及使用安全docker私有倉庫的方法,如圖1所示,包括以下步驟:
s101:下載dockerregistry官方鏡像倉庫;
s102:創(chuàng)建lvm掛載盤用于掛載docker鏡像;
s103:服務(wù)端使用openssl創(chuàng)建證書,然后加載證書到docker配置中;
s104:運行dockerregistry服務(wù)構(gòu)建docker私有倉庫;
s105:客戶端獲取服務(wù)端的證書并保存,然后再次加載證書到docker配置中;
s106:用戶創(chuàng)建docker鏡像,并將其重命名;
s107:將docker鏡像推送到docker私有倉庫;
s108:服務(wù)端驗證docker鏡像是否保存成功,若保存成功,則其他用戶則可拉取該docker鏡像,若保存失敗,則返回s106。
作為一種實施方式,本方法基于centosrelease7操作系統(tǒng)。
作為一種實施方式,本方法基于etcd和swarm搭建的1.11.1版本的docker集群環(huán)境。
作為一種實施方式,本方法服務(wù)端編程基于go語言編程實現(xiàn)。
作為一種實施方式,本方法基于的dockerregistry官方鏡像版本為2.5.0。
作為一種實施方式,本方法基于的openssl版本為1.0.1e-51.el7_2.5。
實施例2
本發(fā)明另一種搭建及使用安全docker私有倉庫的方法,如圖2所示,包括以下步驟:
s201:在服務(wù)端搭建docker環(huán)境;
s202:下載dockerregistry官方鏡像倉庫;
s203:創(chuàng)建lvm掛載盤用于掛載docker鏡像;
s204:服務(wù)端從dockerregistry官方鏡像倉庫拉取一個鏡像,防火墻同時開放5000端口對外監(jiān)聽;
s205:服務(wù)端使用openssl創(chuàng)建證書,然后通過修改docker的配置,加載openssl生成的證書到docker配置中;
s206:運行dockerregistry服務(wù)構(gòu)建docker私有倉庫;
s207:服務(wù)端將證書下發(fā)給使用docker私有倉庫鏡像的客戶端;
s208:客戶端獲取服務(wù)端的證書并保存,然后通過修改docker的配置,再次加載openssl生成的證書到docker配置中;
s209:用戶創(chuàng)建docker鏡像,并將其重命名;
s210:將docker鏡像推送到docker私有倉庫;
s211:服務(wù)端驗證docker鏡像是否保存成功,若保存成功,則其他用戶則可拉取該docker鏡像,若保存失敗,則返回s209。
作為一種實施方式,本方法基于centosrelease7操作系統(tǒng)。
作為一種實施方式,本方法基于etcd和swarm搭建的1.11.1版本的docker集群環(huán)境。
作為一種實施方式,本方法服務(wù)端編程基于go語言編程實現(xiàn)。
作為一種實施方式,本方法基于的dockerregistry官方鏡像版本為2.5.0。
作為一種實施方式,本方法基于的openssl版本為1.0.1e-51.el7_2.5。
實施例3
本發(fā)明一種搭建及使用安全docker私有倉庫的裝置,如圖3所示,包括:
下載模塊301,第一創(chuàng)建模塊302,第一加載模塊303,運行模塊304,第二加載模塊305,第二創(chuàng)建模塊306,推送模塊307,驗證模塊308;其中下載模塊301依次連接第一創(chuàng)建模塊302、第一加載模塊303、運行模塊304、第二加載模塊305、第二創(chuàng)建模塊306、推送模塊307和驗證模塊308。
下載模塊301,用于下載dockerregistry官方鏡像倉庫;
第一創(chuàng)建模塊302,用于創(chuàng)建lvm掛載盤用于掛載docker鏡像;
第一加載模塊303,用于服務(wù)端使用openssl創(chuàng)建證書,然后加載證書到docker配置中;
運行模塊304,用于運行dockerregistry服務(wù)構(gòu)建docker私有倉庫;
第二加載模塊305,用于客戶端獲取服務(wù)端的證書并保存,然后再次加載證書到docker配置中;
第二創(chuàng)建模塊306,用于用戶創(chuàng)建docker鏡像,并將其重命名;
推送模塊307,用于將docker鏡像推送到docker私有倉庫;
驗證模塊308,用于服務(wù)端驗證docker鏡像是否保存成功,若保存成功,則其他用戶則可拉取該docker鏡像,若保存失敗,則返回第二創(chuàng)建模塊。
作為一種實施方式,本裝置基于centosrelease7操作系統(tǒng)。
作為一種實施方式,本裝置基于etcd和swarm搭建的1.11.1版本的docker集群環(huán)境。
作為一種實施方式,本裝置服務(wù)端編程基于go語言編程實現(xiàn)。
作為一種實施方式,本裝置基于的dockerregistry官方鏡像版本為2.5.0。
作為一種實施方式,本裝置基于的openssl版本為1.0.1e-51.el7_2.5。
實施例4
本發(fā)明另一種搭建及使用安全docker私有倉庫的裝置,如圖4所示,包括:
搭建模塊401,下載模塊402,第一創(chuàng)建模塊403,拉取模塊404,第一加載模塊405,運行模塊406,下發(fā)模塊407,第二加載模塊408,第二創(chuàng)建模塊409,推送模塊410,驗證模塊411;其中搭建模塊401依次連接下載模塊402、第一創(chuàng)建模塊403、拉取模塊404、第一加載模塊405、運行模塊406、下發(fā)模塊407、第二加載模塊408、第二創(chuàng)建模塊409、推送模塊410、驗證模塊411。
搭建模塊401,用于在服務(wù)端搭建docker環(huán)境;
下載模塊402,用于下載dockerregistry官方鏡像倉庫;
第一創(chuàng)建模塊403,用于創(chuàng)建lvm掛載盤用于掛載docker鏡像;
拉取模塊404,用于服務(wù)端從dockerregistry官方鏡像倉庫拉取一個鏡像,防火墻同時開放5000端口對外監(jiān)聽;
第一加載模塊405,用于服務(wù)端使用openssl創(chuàng)建證書,然后加載證書到docker配置中;
運行模塊406,用于運行dockerregistry服務(wù)構(gòu)建docker私有倉庫;
下發(fā)模塊407,服務(wù)端將證書下發(fā)給使用docker私有倉庫鏡像的客戶端;
第二加載模塊408,用于客戶端獲取服務(wù)端的證書并保存,然后再次加載證書到docker配置中;
第二創(chuàng)建模塊409,用于用戶創(chuàng)建docker鏡像,并將其重命名;
推送模塊410,用于將docker鏡像推送到docker私有倉庫;
驗證模塊411,用于服務(wù)端驗證docker鏡像是否保存成功,若保存成功,則其他用戶則可拉取該docker鏡像,若保存失敗,則返回第二創(chuàng)建模塊。
作為一種實施方式,本裝置基于centosrelease7操作系統(tǒng)。
作為一種實施方式,本裝置基于etcd和swarm搭建的1.11.1版本的docker集群環(huán)境。
作為一種實施方式,本裝置服務(wù)端編程基于go語言編程實現(xiàn)。
作為一種實施方式,本裝置基于的dockerregistry官方鏡像版本為2.5.0。
作為一種實施方式,本裝置基于的openssl版本為1.0.1e-51.el7_2.5。
以上所示僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。