您好,登錄后才能下訂單哦!
這篇文章主要介紹企業(yè)級(jí)Docker Registry開源工具Harbor怎么用,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
將學(xué)習(xí)到怎樣使用Harbor去完成以下任務(wù):
管理你的項(xiàng)目
管理一個(gè)項(xiàng)目中的成員
同步一個(gè)項(xiàng)目中的registry到遠(yuǎn)端的registry
檢索項(xiàng)目和鏡像源
如果你是系統(tǒng)管理員,可以學(xué)習(xí)如何管理你的Harbor系統(tǒng):
管理用戶
管理目標(biāo)鏡像
管理同步策略(多個(gè)registry之間的鏡像同步)
使用docker客戶端程序上傳下載鏡像文件(docker pull/push images)
刪除倉(cāng)庫(kù)和鏡像文件
##基于角色的訪問(wèn)控制 RBAC (Role Based Access Control)在Harbor中被支持,目前會(huì)支持四種具有不同權(quán)限的角色:
游客: 游客角色只對(duì)一個(gè)指定的項(xiàng)目有只讀
權(quán)限。
開發(fā)者: 開發(fā)者對(duì)一個(gè)項(xiàng)目具有讀寫
權(quán)限
項(xiàng)目管理員: 當(dāng)創(chuàng)建一個(gè)新項(xiàng)目的時(shí)候,該用戶將被自動(dòng)分配為項(xiàng)目管理員
的角色去管理整個(gè)項(xiàng)目。除過(guò)讀寫
特權(quán)之外,項(xiàng)目管理員也有其他方面的管理特權(quán),比如添加和移除項(xiàng)目成員。
系統(tǒng)管理員: 系統(tǒng)管理員
有著最大的權(quán)限,也就是系統(tǒng)默認(rèn)的admin用戶。 除了上述提到權(quán)限之外,系統(tǒng)管理員
也有所有的項(xiàng)目權(quán)限,并且可以將一個(gè)普通用戶提升成管理員,同時(shí)也可以刪除用戶。系統(tǒng)默認(rèn)的公開項(xiàng)目library
也屬于系統(tǒng)管理員。
匿名用戶: 當(dāng)一個(gè)用戶沒(méi)有登錄的時(shí)候,該用戶就被認(rèn)為匿名用戶。任何一個(gè)匿名用戶都無(wú)法訪問(wèn)私有的項(xiàng)目,并且對(duì)所有的公開項(xiàng)目有只讀
權(quán)限。
##用戶賬戶 作為一個(gè)用戶,可以通過(guò)自注冊(cè)程序去注冊(cè)一個(gè)賬戶。用戶名和郵箱地址必須在Harbor中唯一。密碼必須包含至少7個(gè)字符,其中必須包含一個(gè)大寫一個(gè)小寫以及一個(gè)數(shù)字字符。
如果管理員已經(jīng)配置了LDAP/AD作為用戶認(rèn)證源,注冊(cè)一步可以可以忽略的。LDAP/AD的用戶id可以被用來(lái)直接登錄Harbor。
如果你忘記了自己的密碼,可以通過(guò)以下步驟進(jìn)行重置密碼:
在登錄頁(yè)面點(diǎn)擊忘記密碼
輸入注冊(cè)時(shí)候填寫的郵件地址,郵箱將會(huì)收到一封修改密碼的郵件
接受到郵件后,點(diǎn)擊郵件里面的鏈接將跳轉(zhuǎn)到密碼重置頁(yè)面
輸入新密碼后點(diǎn)擊提交即可
##管理項(xiàng)目 在Harbor中的一個(gè)項(xiàng)目包含一個(gè)應(yīng)用的所有倉(cāng)庫(kù).RBAC(基于角色的權(quán)限控制)被應(yīng)用在一個(gè)項(xiàng)目中。在Harbor中分為兩種項(xiàng)目公開
和私有
:
Public: 所有用戶對(duì)于公開項(xiàng)目都有讀權(quán)限,這種方式對(duì)于你想把一些倉(cāng)庫(kù)分享給其他人的時(shí)候,是非常方便的.
Private: 私有項(xiàng)目只能被有特定用戶權(quán)限的人去訪問(wèn)。這種方式對(duì)于內(nèi)部團(tuán)隊(duì)來(lái)說(shuō)共享也是比較方便的。
在你登錄Harbor之后就可以創(chuàng)建項(xiàng)目。點(diǎn)擊"Public"復(fù)選框?qū)⑹乖擁?xiàng)目變成公開項(xiàng)目。
項(xiàng)目被創(chuàng)建之后,用戶就可以瀏覽倉(cāng)庫(kù),用戶以及使用導(dǎo)航標(biāo)簽的一些日志。
所有的操作日志將被通過(guò)點(diǎn)擊日志
列出來(lái),你可以通過(guò)高級(jí)搜索中用戶名,操作以及日期去搜索相關(guān)操作日志:
##管理項(xiàng)目成員 ###添加成員 你可以使用不同的角色去添加成員到已經(jīng)存在的項(xiàng)目。
###更新和移除項(xiàng)目成員 你可以通過(guò)點(diǎn)擊編輯和刪除按鈕來(lái)更新和移除成員。
##鏡像復(fù)制 如果你是系統(tǒng)管理員,你可以將倉(cāng)庫(kù)中的鏡像文件同步到遠(yuǎn)端的registry(也就是你的目標(biāo)Harbor) , 目前只有Harbor實(shí)例才支持作為一個(gè)目標(biāo)倉(cāng)庫(kù)。因此,要使用鏡像復(fù)制功能,必須將Harbor在遠(yuǎn)端重新部署一份
注意: 該鏡像復(fù)制功能在Harbor 0.3.5之前和和0.3.5版本之后是不兼容的。
在項(xiàng)目主頁(yè)點(diǎn)擊復(fù)制
,并點(diǎn)擊新增策略
來(lái)進(jìn)行添加鏡像復(fù)制策略。目標(biāo)URL即為遠(yuǎn)端的鏡像中心
測(cè)試連接成功之后就可以點(diǎn)擊確定進(jìn)行鏡像復(fù)制:
可以看到該復(fù)制任務(wù)正在進(jìn)行,并且顯示當(dāng)前復(fù)制的相關(guān)信息。底部會(huì)顯示該項(xiàng)目的整個(gè)復(fù)制進(jìn)度,以及每個(gè)倉(cāng)庫(kù)復(fù)制的信息。
點(diǎn)擊右邊的日志可以查看每個(gè)倉(cāng)庫(kù)鏡像同步的信息詳情。
復(fù)制完成之后就可以在遠(yuǎn)端Harbor中看到已經(jīng)同步過(guò)去的項(xiàng)目以及鏡像文件。
##檢索項(xiàng)目和鏡像倉(cāng)庫(kù) 在頂部搜索框中輸入一個(gè)關(guān)鍵字并查詢會(huì)列出所有匹配的項(xiàng)目和鏡像倉(cāng)庫(kù)信息。搜索結(jié)果包含所有你有權(quán)限訪問(wèn)的私有和公開鏡像。
##管理員選項(xiàng) ###管理用戶 管理員可以添加管理員
角色給普通用戶,以提升權(quán)限,當(dāng)然也可以刪除某個(gè)用戶。
###管理目標(biāo)(遠(yuǎn)端Harbor) 用戶可以在管理員選項(xiàng)下
的目標(biāo)
按鈕下列出,添加和刪除復(fù)制策略,以及修改目標(biāo)Harbor。只有那些不被任何策略引用的目的Harbor才能被修改編輯。
###管理復(fù)制 用戶可以在管理員選項(xiàng)下
的復(fù)制
按鈕下列出,編輯和啟用或者禁止策略。再編輯策略之前需要確認(rèn)策略已經(jīng)被禁掉。
##使用Docker 客戶端命令進(jìn)行pull和push鏡像(下載和上傳鏡像)
注意: Harbor只支持Registry V2的API,因此你的docker客戶端版本必須在1.6.0以上才行。
Harbor默認(rèn)支持的是HTTP,但是Docker客戶端默認(rèn)會(huì)使用HTTPS去連接鏡像倉(cāng)庫(kù),因此當(dāng)你pull或push鏡像的時(shí)候出現(xiàn)以下錯(cuò)誤提示:
FATA[0002] Error: Invalid registry endpoint https://localhost.com:5000/v1/: Get https://localhost.com:5000/v1/_ping: EOF. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry localhost.com:5000` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/localhost.com:5000/ca.crt
你只需要在Docker daemon的啟動(dòng)配置中加入以下參數(shù)就可以使用了。 --insecure-registry ip:port(regirsty的地址)
在Ubuntu系列中默認(rèn)配置文件在/etc/default/docker
。 在Centos系列中默認(rèn)配置文件在/etc/sysconfig/docker
配置示例:
在HTTPS情況下,你需要能夠訪問(wèn)registry的CA證書就行,不需要配置額外的參數(shù),一般的證書地址會(huì)放在以下位置。 /etc/docker/certs.d/myregistrydomain.com:5000/ca.crt
###下載鏡像文件(docker pull images) 如果項(xiàng)目中的鏡像文件是私有的,那么首先先登錄再去下載:
$ docker login 172.25.47.67
$ docker pull 172.25.47.67/pandora/pandora-redis:latest
注意: 用戶在操作的時(shí)候,只需要替換上面的ip地址為harbor.cfg中配置的hostname(域名或者ip).
###上傳鏡像(docker push images) 在上傳鏡像之前,必須先在Harbor的web界面上創(chuàng)建一個(gè)對(duì)應(yīng)的項(xiàng)目,因?yàn)殓R像上傳上去是存儲(chǔ)在對(duì)應(yīng)項(xiàng)目中的。
首先,先使用docker client 登錄: 用戶名密碼為Harbor上面設(shè)置的用戶/密碼,并且相應(yīng)的權(quán)限和項(xiàng)目是一一對(duì)應(yīng)的,你的用戶也只能上傳屬于你自己項(xiàng)目的鏡像。
$ docker login 172.25.47.67
給鏡像打tag:
$ docker tag ubuntu:14.04 172.25.47.67/pandora/ubuntu:14.04
上傳鏡像:
$ docker push 172.25.47.67/pandora/ubuntu:14.04
注意: 用戶在操作的時(shí)候,只需要替換上面的ip地址為harbor.cfg中配置的hostname(域名或者ip).
##刪除鏡像倉(cāng)庫(kù)
鏡像倉(cāng)庫(kù)的刪除需要執(zhí)行兩步操作:
首先,在Harbor的web界面上刪除一個(gè)鏡像倉(cāng)庫(kù),這是一個(gè)軟刪除,Harbor將不會(huì)再管理這個(gè)倉(cāng)庫(kù),但是倉(cāng)庫(kù)中的鏡像都還是會(huì)在registry中存放(Harbor的存儲(chǔ)中)。
注意: 如果tagA和tagB都指向相同的image,在刪除tagA之后,tagB也會(huì)被刪除。
接下來(lái),使用registry的垃圾回收機(jī)制( garbage collection(GC))去刪除文件.在操作GC之前需要確定沒(méi)有人正在上傳鏡像或者Harbor沒(méi)有運(yùn)行。如果當(dāng)GC正在運(yùn)行中的時(shí)候有人正在push鏡像,那么會(huì)有一些鏡像層(images layers)錯(cuò)誤刪除的風(fēng)險(xiǎn)。因此,在運(yùn)行GC之前,比較推薦的做法是先停掉Harbor。
在部署Harbor的主機(jī)上運(yùn)行以下命令,可以預(yù)覽到收到影響的文件或者鏡像。
$ docker-compose stop $ docker run -it --name gc --rm --volumes-from deploy_registry_1 registry:2.5.0 garbage-collect --dry-run /etc/registry/config.yml
注意: 上面的參數(shù)"--dry-run" 將會(huì)打印刪除的進(jìn)度 驗(yàn)證完刪除的測(cè)試之后,可以使用下面的命令進(jìn)行GC回收,并且重啟Harbor。
$ docker run -it --name gc --rm --volumes-from deploy_registry_1 registry:2.5.0 garbage-collect /etc/registry/config.yml $ docker-compose start
以上是“企業(yè)級(jí)Docker Registry開源工具Harbor怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。