溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Docker容器harbor私有倉庫怎么部署和管理

發(fā)布時間:2022-08-05 09:50:33 來源:億速云 閱讀:155 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“Docker容器harbor私有倉庫怎么部署和管理”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Docker容器harbor私有倉庫怎么部署和管理”吧!

一、Harbor概述

  • Harbor是VMware公司開源的企業(yè)級Docker Registry項目,其目標(biāo)是幫助用戶迅速搭建一個企業(yè)級的Docker Registry服務(wù)。

  • Harbor以Docker 公司開源的Registry 為基礎(chǔ),提供了圖形管理UI、基于角色的訪問控制(Role Based AccessControl)、AD/LDAI們成以心宙計日志(Auditlogging)等企業(yè)用戶需求的功能,同時還原生支持中文。

  • Harbor的每個組件都是以Docker容器的形式構(gòu)建的,使用docker-compose來對它進(jìn)行部署。用于部署Harbor的docker-compose模板位于harbor/docker-compose.yml。

二、Harbor的特性

  • 基于角色控制:用戶和倉庫都是基于項目進(jìn)行組織的,而用戶在項目中可以擁有不同的權(quán)限。

  • 基于鏡像的復(fù)制策略:鏡像可以在多個Harbor實例之間進(jìn)行復(fù)制(同步)

  • 支持LDAP/AD:Harbor可以集成企業(yè)內(nèi)部已有的AD/LDAP(類似數(shù)據(jù)庫的一張表),用于對已經(jīng)存在的用戶認(rèn)證和管理。

  • 鏡像刪除和垃圾回收:鏡像可以被刪除,也可以回收鏡像占用的空間。

  • 圖形化用戶界面:用戶可以通過瀏覽器來瀏覽,搜索鏡像倉庫以及對項目進(jìn)行管理。

  • 審計管理:所有針對鏡像倉庫的操作都可以被記錄追溯,用于審計管理。

  • 支持 RESTful API:RESTful API 提供給管理員對于Harbor更多的操控,使得與其它管理軟件集成變得更容易。

  • Harbor和docker registry的關(guān)系:Harbor實質(zhì)上是對docker registry做了封裝,擴(kuò)展了自己的業(yè)務(wù)模板。

三、Harbor的構(gòu)成

Docker容器harbor私有倉庫怎么部署和管理

Harbor在架構(gòu)上主要有proxy、Registry、Core services、Database(Harbor-db)、Log collector(Harbor-log)、Job services六個組件。

  • Proxy:是一個nginx的前端代理,Harbor的Registry、UI、Token服務(wù)等組件,都處在nginx反向代理后邊。該代理將來自瀏覽器、docker clients的請求轉(zhuǎn)發(fā)到后端不同的服務(wù)上。

  • Registry:負(fù)責(zé)存儲Docker鏡像,并處理Docker push/pull命令。由于要對用戶進(jìn)行訪問控制,即不同用戶對Docker鏡像有不同的讀寫權(quán)限,Registry會指向一個Token服務(wù),強制用戶的每次Docker pull/push請求都要攜帶一個合法的Token,Registry會通過公鑰對Token進(jìn)行解密驗證。

  • Core services:Harbor的核心功能,主要提供一下3個服務(wù):

UI(harbor-ui):提供圖形化界面,幫助用戶管理Registry上的鏡像(image),并對用戶進(jìn)行授權(quán)。
WebHook:為了及時獲取Registry上image狀態(tài)變化的情況,在Registry上配置WebHook,把狀態(tài)變化傳遞給UI模塊。
Token服務(wù):負(fù)責(zé)根據(jù)用戶權(quán)限給每個Docker push/pull命令簽發(fā)Token.Docker客戶端向Registry服務(wù)發(fā)起的請求,如果不包含Docker Token,會被重定向到Token服務(wù),獲得Token后再重新向Registry進(jìn)行請求。

  • Database(harbor-db):為core services提供數(shù)據(jù)庫服務(wù),負(fù)責(zé)存儲用戶權(quán)限、審計日志、Docker鏡像分組信息等數(shù)據(jù)。Docker數(shù)據(jù)存儲在文件系統(tǒng),但是分組信息存儲在數(shù)據(jù)庫。

  • Job services:主要用于鏡像復(fù)制,本地鏡像可以被同步到遠(yuǎn)程Harbor實例上。

  • Log collector(harbor-log):負(fù)責(zé)收集其他組件的日志到一個地方。

Harbor 的每個組件都是以 Docker 容器的形式構(gòu)建的,因此,使用 Docker Compose 來對它進(jìn)行部署。
總共分為7個容器運行,通過在docker-compose.yml所在目錄中執(zhí)行 docker-compose ps 命令來查看, 名稱分別為:nginx、harbor-jobservice、harbor-ui、harbor-db、harbor-adminserver、registry、harbor-log。
其中 harbor-adminserver 主要是作為一個后端的配置數(shù)據(jù)管理,并沒有太多的其他功能。harbor-ui 所要操作的所有數(shù)據(jù)都通過 harbor-adminserver 這樣一個數(shù)據(jù)配置管理中心來完成

四、Harbor私有倉庫搭建

(1)安裝docker-compose

cd /opt
#上傳docker-compose
mv docker-compose /usr/bin
chmod +x /usr/bin/docker-compose

Docker容器harbor私有倉庫怎么部署和管理

(2)安裝harbor

rz harbor-offline-installer-v1.2.2.tgz
tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
#==配置Harbor參數(shù)文件==
vim /usr/local/harbor/harbor.cfg
#==第5行修改==
hostname = 192.168.48.14

Docker容器harbor私有倉庫怎么部署和管理

Docker容器harbor私有倉庫怎么部署和管理

安裝harbor鏡像

sh /usr/local/harbor/install.sh

Docker容器harbor私有倉庫怎么部署和管理

查看鏡像與容器:

docker ps
docker images

Docker容器harbor私有倉庫怎么部署和管理

Docker容器harbor私有倉庫怎么部署和管理

物理機(jī)訪問server IP

192.168.48.14
用戶名:admin
密碼:Harbor12345

Docker容器harbor私有倉庫怎么部署和管理

(3)新建項目

Docker容器harbor私有倉庫怎么部署和管理

Docker容器harbor私有倉庫怎么部署和管理

Docker容器harbor私有倉庫怎么部署和管理

(4)鏡像推送

#登錄私有倉庫
docker login -u admin -p Harbor12345 http://192.168.48.14
vim /etc/docker/daemon.json
{
  "insecure-registries": ["192.168.48.14"]
}

Docker容器harbor私有倉庫怎么部署和管理

Docker容器harbor私有倉庫怎么部署和管理

Docker容器harbor私有倉庫怎么部署和管理

Docker容器harbor私有倉庫怎么部署和管理

#下載鏡像進(jìn)行測試
docker pull nginx

#鏡像打標(biāo)簽
docker tag nginx 192.168.48.14/xy/nginx:v1

#上傳鏡像到Harbor
docker push 192.168.48.14/xy/nginx:v1

Docker容器harbor私有倉庫怎么部署和管理

Docker容器harbor私有倉庫怎么部署和管理

瀏覽器訪問倉庫,查看鏡像

Docker容器harbor私有倉庫怎么部署和管理

(5)從私有倉庫下載鏡像

使用另外一臺服務(wù)器,進(jìn)行鏡像下載

#添加私有倉庫地址
vim /etc/docker/daemon.json
{
  "insecure-registries": ["192.168.48.14"]
}
#下載鏡像
#docker pull 私有倉庫地址/倉庫名/鏡像名:標(biāo)簽
docker pull 192.168.48.14/xy/nginx:v1

Docker容器harbor私有倉庫怎么部署和管理

查看Hardor日志:

Docker容器harbor私有倉庫怎么部署和管理

(6)Harbor管理

可以使用 docker-compose 來管理 Harbor。一些有用的命令如下所示,必須在與docker-compose.yml 相同的目錄中運行。

修改 Harbor.cfg 配置文件:

  • 要更改 Harbour 的配置文件時,請先停止現(xiàn)有的 Harbour 實例并更新 Harbor.cfg;

  • 然后運行 prepare 腳本來填充配置;

  • 最后重新創(chuàng)建并啟動 Harbour 的實例。

#卸載
docker-compose down -v

#編輯配置文件 
vim harbor.cfg

#填充配置
./prepare

#啟動Harbor
docker-compose up -d

#如果報錯
解決思路
關(guān)閉防火墻、重啟docker
systemctl stop firewalld
setenfore 0
systemctl restart docker

感謝各位的閱讀,以上就是“Docker容器harbor私有倉庫怎么部署和管理”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Docker容器harbor私有倉庫怎么部署和管理這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI