在實(shí)際生產(chǎn)運(yùn)維中,往往需要把鏡像發(fā)布到幾十、上百臺(tái)或更多的節(jié)點(diǎn)上。這時(shí)單臺(tái)Docker主機(jī)上鏡像已無法滿足,項(xiàng)目越來越多,鏡像就越來越多,都放到一臺(tái)Docker主機(jī)上是不行的,我們需要一個(gè)像Git倉庫一樣系統(tǒng)來統(tǒng)一管理鏡像。這里介紹的是一個(gè)企業(yè)級(jí)鏡像倉庫Harbor,將作為我們?nèi)萜髟破脚_(tái)的鏡像倉庫中心。
目前成都創(chuàng)新互聯(lián)已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、精河網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
Habor是由VMWare公司開源的容器鏡像倉庫。事實(shí)上,Habor是在Docker Registry上進(jìn)行了相應(yīng)的企業(yè)級(jí)擴(kuò)展,從而獲得了更加廣泛的應(yīng)用,這些新的企業(yè)級(jí)特性包括:管理用戶界面,基于角色的訪問控制 ,AD/LDAP集成以及審計(jì)日志等,足以滿足基本企業(yè)需求。?
官方地址:https://vmware.github.io
Github:https://github.com/goharbor/harbor

在企業(yè)中,通常有不同的開發(fā)團(tuán)隊(duì)負(fù)責(zé)不同的項(xiàng)目,鏡像像代碼一樣,每個(gè)人角色不同需求也不同,因此就需要訪問權(quán)限控制,根據(jù)角色分配相應(yīng)的權(quán)限。?
例如,開發(fā)人員需要對(duì)項(xiàng)目構(gòu)建這就用到讀寫權(quán)限(push/pull),測(cè)試人員只需要讀權(quán)限(pull),運(yùn)維一般管理鏡像倉庫,具備權(quán)限分配能力,項(xiàng)目經(jīng)理具有所有權(quán)限。?
鏡像復(fù)制
可以將倉庫中的鏡像同步到遠(yuǎn)程的Harbor,類似于MySQL主從同步功能。
Harbor支持LDAP認(rèn)證,可以很輕易接入已有的LDAP。
Harbor支持在Web刪除鏡像,回收無用的鏡像,釋放磁盤空間。
用戶很方面搜索鏡像及項(xiàng)目管理。
對(duì)倉庫的所有操作都有記錄。
完整的API,方便與外部集成。
| 組件 | 功能 |
| harbor-adminserver | 配置管理中心 |
| harbor-db | Mysql數(shù)據(jù)庫 |
| harbor-jobservice | 負(fù)責(zé)鏡像復(fù)制 |
| harbor-log | 記錄操作日志 |
| harbor-ui | Web管理頁面和API |
| nginx | 前端代理,負(fù)責(zé)前端頁面和鏡像上傳/下載轉(zhuǎn)發(fā) |
| redis | 會(huì)話 |
| registry | 鏡像存儲(chǔ) |
環(huán)境要求:

Harbor安裝有3種方式:
在線安裝:從Docker Hub下載Harbor相關(guān)鏡像,因此安裝軟件包非常小
離線安裝:安裝包包含部署的相關(guān)鏡像,因此安裝包比較大
OVA安裝程序:當(dāng)用戶具有vCenter環(huán)境時(shí),使用此安裝程序,在部署OVA后啟動(dòng)Harbor
我們采用離線安裝,首先下載離線安裝包:https://github.com/vmware/harbor/releases
基本配置:

準(zhǔn)備配置文件:
# ./prepare
安裝并啟動(dòng)Harbor:
# ./install.sh
查看運(yùn)行狀態(tài):

部署完成,是不是很簡單呢!?
如果有非Up狀態(tài),先看日志:
# ls /var/log/harbor/
adminserver.log ?jobservice.log ?mysql.log ?proxy.log ?redis.log ?registry.log ?ui.log
HTTPS方式部署:
如果想以https加密方式提供服務(wù)可以參考這個(gè)免費(fèi)的視頻教程:https://ke.qq.com/course/311382
或者參考官方文檔:https://github.com/vmware/harbor/blob/master/docs/configure_https.md?
4、登錄Web頁面
瀏覽器輸入:http://10.206.240.188
賬號(hào):admin ?
密碼:Harbor12345

這里有4個(gè)項(xiàng)目,library是默認(rèn)自帶的,通常用這個(gè)存儲(chǔ)一些公共的鏡像,這個(gè)項(xiàng)目下鏡像誰都可以pull,但不能push,push需要先登錄。其他3個(gè)項(xiàng)目是我自己創(chuàng)建的,請(qǐng)忽略。
先創(chuàng)建一個(gè)用戶:

進(jìn)入library項(xiàng)目,將用戶加入這個(gè)成員:

這樣lizhenliang用戶就具備了對(duì)這個(gè)library項(xiàng)目的push權(quán)限。?
注:創(chuàng)建新項(xiàng)目賦予用戶權(quán)限同等方式。
接下來將剛才構(gòu)建的鏡像推送到Harbor倉庫,先看看我們要推送的鏡像:

在推送之前,需要注意第一列,這個(gè)完整格式是:

如果鏡像只放在本地存儲(chǔ)REPOSITORY寫什么都可以,但推送到鏡像倉庫就必須指定倉庫中心地址。?
所以,先打重命名REPOSITORY,其實(shí)就是引用源鏡像標(biāo)記了一個(gè)目標(biāo)鏡像:

訪問拒絕,剛說過,push需先登錄:

其他Docker主機(jī)怎么下載剛推送的鏡像呢??
由于我們搭建的Harbor是以HTTP提供服務(wù)的,而Docker CLI默認(rèn)以HTTPS 訪問倉庫,所以要先配置可信任,否則pull鏡像倉庫失敗。如果是HTTPS提供服務(wù)就不用配置這一步了。

pull的地址跟push時(shí)是一樣的。
當(dāng)前題目:企業(yè)級(jí)Docker鏡像倉庫Harbor部署與使用
網(wǎng)站鏈接:http://www.chinadenli.net/article38/gidipp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、ChatGPT、網(wǎng)站制作、標(biāo)簽優(yōu)化、虛擬主機(jī)、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)