Docker本質(zhì)上就是虛擬化方法的一種,是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何Linux機器上,當然也可以基于Linux實現(xiàn)虛擬化,容器是完全使用沙箱機制,相互之間不會有任何接口。
docker支持隨機創(chuàng)建、銷毀,當任務(wù)需要創(chuàng)建一臺實例時,只需要在設(shè)備池中虛擬化出一臺資源機,掛載私有網(wǎng)絡(luò),便完成了實例創(chuàng)建。當然,服務(wù)器除了硬件資源,還需要軟件資源,包含操作系統(tǒng)、容器、中間件等配合,因此,實例化docker之后,我們還得創(chuàng)建操作系統(tǒng)、安裝我們的容器配置。
那么,能否把這些所需要的內(nèi)容進行統(tǒng)一打包,然后順勢“解壓”到服務(wù)器上,直接完成基本環(huán)境部署,這就需要鏡像文件的協(xié)助。
我們回想一下winXP,win7盛行的年代,當年“雨林木風”大火的年代,凡是安裝過操作系統(tǒng)的兄弟們,都或多或少聽說過ghost,那個藍色,旁邊有個小精靈的框框。我們將gho文件預(yù)先存放在磁盤里,或者光盤中,甚至U盤啟動盤中,藍色框框出現(xiàn)后,選中g(shù)ho文件,對其進行還原。待安裝完成后,我們的操作系統(tǒng)就安裝好了,當然,驅(qū)動什么的,需要自行解決(如果是個人電腦備份的gho便可以任他藍屏都不怕,當然,前提是資料不要在系統(tǒng)盤)。
ghost這種方式,只是安裝OS系統(tǒng)方式其中的一種,還有一種ISO文件,可以雙擊打開,這種更為方便,打開后,按步驟執(zhí)行,會覆蓋系統(tǒng)盤的全部內(nèi)容。從而替換當前操作系統(tǒng)。這些,都是鏡像文件的體現(xiàn)方式。
鏡像(Mirroring)是冗余的一種類型,一個磁盤上的數(shù)據(jù)在另一個磁盤上存在一個完全相同的副本即為鏡像。
鏡像是一種文件存儲形式,可以把許多文件做成一個鏡像文件,與GHOST等程序放在一個盤里用GHOST等軟件打開后,又恢復(fù)成許多文件,RAID1和RAID10使用的就是鏡像。常見的鏡像文件格式有ISO、BIN、IMG、TAO、DAO、CIF、FCD。
現(xiàn)在云計算中,鏡像使用更為廣泛。配合虛擬資源生成,鏡像集成了操作系統(tǒng)、nginx,tomcat,jenkins,sdk等。按照不同設(shè)備功能,對服務(wù)器進行不同版本軟件集成。
正是因為有了鏡像文件,才大大減少了虛擬服務(wù)器創(chuàng)建的工作量。才有了如今,各大公有云廠商的一鍵生成服務(wù)器的操作。
上面說了這么多,相信大家都知道今天本作者的主題是什么了,那就是鏡像倉庫選型比較。
DockerRepository為Docker倉庫,是集中存放鏡像的地方。
DockerRegistry是Docker倉庫的注冊服務(wù)器,實際上Docker倉庫鏡像的管理,分發(fā),用戶認證都是通過Registry來完成,就是所謂的Docker倉庫管理工具。
Docker官方為用戶提供了一個公共倉庫DockerHub,大部分需求鏡像都可以通過在Docker Hub中直接下載鏡像來實現(xiàn)。但面對這鏡像使用的方便,安全問題及網(wǎng)絡(luò)延遲等原因,Docker也滿足自建私有倉庫管理的需求,提供的RegistryDocker私有倉庫鏡像,同時也有一些不錯的第三方Docker私有倉庫管理工具涌現(xiàn)而出。
上圖為部署測試使用nginx鏡像上傳到registry私有倉庫中,其展示方式使用URL在瀏覽器中打開,也可在Linux服務(wù)器上使用curl命令直接訪問URL。其不同的展示樣式需要更改URL,并且沒有直接管理Docker鏡像的工具,同樣需要curl命令修改URL的參數(shù)來完成,操作不方便。
此工具為DockerHub上第三方Docker私有倉庫WebUI鏡像,搜索名稱為:hyper/Docker-registry-web。其包含身份驗證服務(wù)及事件記錄功能,版本基于Dockerregistry v2。
上圖為點擊詳鏡像名稱,進而可查看鏡像的詳細信息。
注:測試Docker-Registry-Web配置為非認證方式,需要在源端服務(wù)器上配置Docker允許私有倉庫地址。
Docker-Registry-Web除支持鏡像展示基本功能外,還可支持鏡像刪除管理,及身份驗證服務(wù)等,身份驗證服務(wù)包括basic驗證及證書驗證等方式。其功能配置方式不做一一展示請參考官網(wǎng)信息。
參考:https://hub.Docker.com/r/hyper/Docker-registry-web
Nexus3支持作為宿主和代理存儲庫的Docker存儲庫,可以直接將這些存儲庫暴露給客戶端工具;也可以以存儲庫組的方式暴露給客戶端工具,存儲庫組是合并了多個存儲庫的內(nèi)容的存儲庫,能夠通過一個URL將多個存儲庫暴露給客戶端工具,從而便于用戶的使用。通過Nexus3自建能夠有效減少訪問獲取鏡像的時間和對帶寬的使用,并能夠通過自有的鏡像倉庫共享企業(yè)自己的鏡像。
Nexus有兩個版本Nexus RepositoryOSS和NexusRepositoryPro,其中OSS版本是免費,Pro專業(yè)版需要收費.OSS對于基礎(chǔ)的倉庫管理已經(jīng)足夠使用。本文中使用的Nexus展示是基于OSS版本。
Nexus中配置Docker私有倉庫有三種類型:
hosted(本地類型)鏡像資源的提交和拉取都基于本地存儲;
proxy(代理類型)本地不做數(shù)據(jù)存儲,可以和hosted配合;
group(組合類型)可以組合多個hosted和proxy按順序提供統(tǒng)一訪問地址;
注:本文測試Nexus版本:NexusOSS 3.24.0-02
如上圖所示,opensource-v1為創(chuàng)建的Docker倉庫項目(基于hosted類型),在此基礎(chǔ)上我們對該項目進行配置管理,主要涉及到倉庫端口,api版本允許,匿名提交權(quán)限,倉庫存儲位置,倉庫權(quán)限等。其中還涉及到規(guī)則配置,是Nexus安全性管理中重要的一項。
注:該Nexus倉庫配置為http方式,需要在源端服務(wù)器上配置Docker允許私有倉庫地址。
上圖描述:Nexus支持工具中服務(wù)資源監(jiān)控功能。
Nexus出色的界面化管理,及強大倉庫管理功能,全面的安全管理配置,簡潔高效的系統(tǒng)管理工具,讓Nexus成為一款優(yōu)秀的倉庫管理軟件,并且其開源版本也得到更多用戶的支持與信賴。
Harbor的每個組件都是以Docker容器的形式構(gòu)建的,可以使用DockerCompose來進行部署,當然,如果你的環(huán)境中使用了Kubernetes,Harbor也提供了Kubernetes的配置文件。
Harbor共由8個容器組成:
ui:Harbor的核心服務(wù);
log:運行著Rsyslog的容器,進行日志收集;
mysql:由官方MySQL鏡像構(gòu)成的數(shù)據(jù)庫容器;
nginx:使用Nginx做反向代理;
registry:官方的Docker Registry;
adminserver:Harbor的配置數(shù)據(jù)管理器;
jobservice:Harbor的任務(wù)管理服務(wù);
redis:用于存儲Session;
注:本文中測試Harbor版本:v1.10.3-6990ccaa
如上圖所示,memcache鏡像為測試上傳push到Harbor倉庫中的展示,其頁面內(nèi)容描述了當前鏡像的詳細信息,鏡像具有復(fù)制,添加標簽,tag復(fù)制及刪除功能。
值得一提的是Harbor的倉庫管理模塊和復(fù)制管理模塊。倉庫管理中可以添加其他倉庫源中的鏡像,利用復(fù)制管理模塊可以將其已添加到倉庫管理中的鏡像復(fù)制到Harbor倉庫中。
如下圖展示(圖表1/2/3):
圖表1
圖表2
圖表3
Harbor系統(tǒng)管理中,還有其他功能可選,例如自我注冊,項目定額,審查服務(wù),垃圾清理,配置管理,中文支持等。Harbor作為專業(yè)的Docker倉庫管理工具,致力于企業(yè)級Registry服務(wù)器發(fā)展,其完善的配置,獨特的功能,良好的界面展示,及友好的中文支持都受到廣大用戶的支持與青睞。
通過對這幾款私有倉庫管理的認識,可以明確看到不同工具之間的功能對比,Registry雖然功能少,但確是官方最早發(fā)行支持的私有倉庫。像Nexus3,和Harbor是具有強烈的專業(yè)性,以其豐富的功能設(shè)計來贏得用戶的認可。行業(yè)內(nèi)還有其他倉庫管理工具流行,本文只采集了這四種來測試對比。希望通過此文章中對不同私有倉庫管理工具的認知,結(jié)合自身實際情況,現(xiàn)場實際環(huán)境,選擇適合場景的倉庫管理工具。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/130220.html
摘要:三私有代碼庫阿里云使用引言使用肯定離不開和代碼的集成。本著代碼可靠性,服務(wù)器穩(wěn)定性,功能擴展性綜合對比,我們選擇使用阿里云的庫。 來自用戶的DevOps實踐分享,分享從開發(fā)代碼到生產(chǎn)環(huán)境部署的一條龍操作的實踐及經(jīng)驗, 包含工具技術(shù)的選型及考量、私有代碼庫與私有鏡像庫的應(yīng)用等。 (一)容器服務(wù)的Rancher選型 1、為什么說是下一代核心技術(shù) 從互聯(lián)網(wǎng)的多次變革說起,早期的C/S架構(gòu),到...
摘要:是系統(tǒng)提供的容器化技術(shù),簡稱,它結(jié)合和技術(shù)為用戶提供了更易用的接口來實現(xiàn)容器化。公司結(jié)合和以下列出的技術(shù)實現(xiàn)了容器引擎,相比于,具備更加全面的資源控制能力,是一種應(yīng)用級別的容器引擎。 showImg(https://segmentfault.com/img/bVbtPbG?w=749&h=192); 題外話 最近對Docker和Kubernetes進行了一番學習,前兩天做了一次技術(shù)...
摘要:一直廣受矚目,被認為可能會改變軟件行業(yè)。簡化配置這是公司宣傳的的主要使用場景。使用,可以為每一個租戶的應(yīng)用層的多個實例創(chuàng)建隔離的環(huán)境,這不僅簡單而且成本低廉,當然這一切得益于環(huán)境的啟動速度和其高效的命令。 本文來自于我的慕課網(wǎng)手記:簡單聊會 Docker,轉(zhuǎn)載請保留鏈接 ;) 最近在工作中一直在忙基礎(chǔ)設(shè)施構(gòu)建,發(fā)現(xiàn)在選型的時候,大家心里基本上都有一個自己的成熟架構(gòu)。而在服務(wù)部署這塊發(fā)現(xiàn)...
摘要:但身在中國的我們難以深刻體驗這些便利,而服務(wù)全球開發(fā)者的平臺亦不可能為中國用戶單獨定制,所以給大家分享一下如何優(yōu)化中國區(qū)的使用體驗。最終我會更新出中國區(qū)的使用鏡像,并到鏡像倉庫上,目前使用的是阿里云的鏡像倉庫招牌比較大短時間內(nèi)不會倒。 引言 Kubernetes(以下簡稱K8s)是Rancher平臺重點支持的一個編排引擎,Rancher K8s具有部署靈活使用方便的特點, 而且Ranc...
摘要:但身在中國的我們難以深刻體驗這些便利,而服務(wù)全球開發(fā)者的平臺亦不可能為中國用戶單獨定制,所以給大家分享一下如何優(yōu)化中國區(qū)的使用體驗。最終我會更新出中國區(qū)的使用鏡像,并到鏡像倉庫上,目前使用的是阿里云的鏡像倉庫招牌比較大短時間內(nèi)不會倒。 引言 Kubernetes(以下簡稱K8s)是Rancher平臺重點支持的一個編排引擎,Rancher K8s具有部署靈活使用方便的特點, 而且Ranc...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4099·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3594·2023-01-11 13:20