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