欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker-harbor私有倉庫部署與管理方式

 更新時間:2025年06月08日 16:04:37   作者:Aspire to freedom  
這篇文章主要介紹了Docker-harbor私有倉庫部署與管理方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

1、什么是Harbor

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

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

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

2、Harbor的特性

  • 基于角色控制:用戶和倉庫都是基于項目進行組織的,而用戶在項目中可以擁有不同的權(quán)限。
  • 基于鏡像的復(fù)制策略:鏡像可以在多個Harbor實例之間進行復(fù)制(同步)。
  • 支持 LDAP/AD:Harbor 可以集成企業(yè)內(nèi)部已有的 AD/LDAP(類似數(shù)據(jù)庫的一張表),用于對已經(jīng)存在的用戶認(rèn)證和管理。
  • 鏡像刪除和垃圾回收:鏡像可以被刪除,也可以回收鏡像占用的空間。
  • 圖形化用戶界面:用戶可以通過瀏覽器來瀏覽,搜索鏡像倉庫以及對項目進行管理。
  • 審計管理:所有針對鏡像倉庫的操作都可以被記錄追溯,用于審計管理。
  • 支持 RESTful API:RESTful API 提供給管理員對于 Harbor 更多的操控, 使得與其它管理軟件集成變得更容易。
  • Harbor和docker registry的關(guān)系:Harbor實質(zhì)上是對docker registry做了封裝,擴展了自己的業(yè)務(wù)模板。

3、Harbor的構(gòu)成

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 命令。由于要對用戶進行訪問控制,即不同用戶對 Docker 鏡像 有不同的讀寫權(quán)限,Registry 會指向一個 Token 服務(wù),強制用戶的每次 Docker pull/push 請求都要攜帶一個合法的 Token, Registry 會通過公鑰對 Token 進行解密驗證。
  • Core services: Harbor的核心功能,主要提供以下3個服務(wù):

1、UI(harbor-ui): 提供圖形化界面,幫助用戶管理 Registry 上的鏡像(image), 并對用戶進行授權(quán)。

2、WebHook:為了及時獲取Registry 上image 狀態(tài)變化的情況,在Registry 上配置 Webhook,把狀態(tài)變化傳遞給 UI 模塊。

3、Token 服務(wù):負(fù)責(zé)根據(jù)用戶權(quán)限給每個 Docker push/pull 命令簽發(fā) Token。Docker 客戶端向 Registry 服務(wù)發(fā)起的請求, 如果不包含 Token,會被重定向到 Token 服務(wù),獲得 Token 后再重新向 Registry 進行請求。

  • Database(harbor-db):為core services提供數(shù)據(jù)庫服務(wù),負(fù)責(zé)儲存用戶權(quán)限、審計日志、Docker 鏡像分組信息等數(shù)據(jù)。
  • Job services: 主要用于鏡像復(fù)制,本地鏡像可以被同步到遠(yuǎn)程 Harbor 實例上。
  • Log collector(harbor-log): 負(fù)責(zé)收集其他

組件的日志到一個地方。

Harbor 的每個組件都是以 Docker 容器的形式構(gòu)建的,因此,使用 Docker Compose 來對它進行部署。

總共分為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ù)配置管理中心來完成。

4、Harbor 部署

(1)部署 Docker-Compose 服務(wù)

Docker-Compose一般在下載docker時已經(jīng)安裝,將他復(fù)制到/usr/local/bin/目錄即可使用
 
find / -name docker-compose 
cp /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin/
docker-compose -v   #查看版本

(2)部署 Harbor 服務(wù)

cd /opt
上傳harbor壓縮包
tar xf harbor-offline-installer-v1.10.18.tgz   #解壓
mv harbor /usr/local/
cd /usr/local
cd harbor/
 
vim harbor.yml
--5行--修改,設(shè)置為Harbor服務(wù)器的IP地址或者域名
hostname:20.0.0.10
--27行--指定管理員的初始密碼,默認(rèn)的用戶名/密碼是admin/Harbor12345
harbor_admin_password = Harbor12345
12-18行全部注釋

關(guān)于 Harbor.cfg 配置文件中有兩類參數(shù):所需參數(shù)和可選參數(shù)

1、所需參數(shù):這些參數(shù)需要在配置文件 Harbor.cfg 中設(shè)置。如果用戶更新它們并運行 install.sh 腳本重新安裝 Harbor, 參數(shù)將生效。具體參數(shù)如下:

  • hostname:用于訪問用戶界面和 register 服務(wù)。它應(yīng)該是目標(biāo)機器的 IP 地址或完全限定的域名(FQDN),例如 192.168.80.10 或 hub.kgc.cn。不要使用 localhost 或 127.0.0.1 為主機名。
  • ui_url_protocol:(http 或 https,默認(rèn)為 http)用于訪問 UI 和令牌/通知服務(wù)的協(xié)議。如果公證處于啟用狀態(tài),則此參數(shù)必須為 https。
  • max_job_workers:鏡像復(fù)制作業(yè)線程。
  • db_password:用于db_auth 的MySQL數(shù)據(jù)庫root 用戶的密碼。
  • customize_crt:該屬性可設(shè)置為打開或關(guān)閉,默認(rèn)打開。打開此屬性時,準(zhǔn)備腳本創(chuàng)建私鑰和根證書,用于生成/驗證注冊表令牌。當(dāng)由外部來源提供密鑰和根證書時,將此屬性設(shè)置為 off。
  • ssl_cert:SSL 證書的路徑,僅當(dāng)協(xié)議設(shè)置為 https 時才應(yīng)用。
  • secretkey_path:用于在復(fù)制策略中加密或解密遠(yuǎn)程 register 密碼的密鑰路徑。

2、可選參數(shù):這些參數(shù)對于更新是可選的,即用戶可以將其保留為默認(rèn)值,并在啟動 Harbor 后在 Web UI 上進行更新。如果進入 Harbor.cfg,只會在第一次啟動 Harbor 時生效,隨后對這些參數(shù)的更新,Harbor.cfg 將被忽略。

注意:如果選擇通過 UI 設(shè)置這些參數(shù),請確保在啟動 Harbor 后立即執(zhí)行此操作。具體來說,必須在注冊或在 Harbor 中創(chuàng)建任何新用戶之前設(shè)置所需的 auth_mode。當(dāng)系統(tǒng)中有用戶時(除了默認(rèn)的 admin 用戶), auth_mode 不能被修改。 具體參數(shù)如下:

  • Email:Harbor 需要該參數(shù)才能向用戶發(fā)送“密碼重置”電子郵件,并且只有在需要該功能時才啟用。請注意,在默認(rèn)情況下 SSL 連接時沒有啟用。如果 SMTP 服務(wù)器需要 SSL,但不支持 STARTTLS,那么應(yīng)該通過設(shè)置啟用 SSL email_ssl = TRUE。
  • harbor_admin_password:管理員的初始密碼,只在 Harbor 第一次啟動時生效。之后, 此設(shè)置將被忽略,并且應(yīng)在 UI 中設(shè)置管理員的密碼。請注意,默認(rèn)的用戶名/密碼是admin/Harbor12345。
  • auth_mode:使用的認(rèn)證類型,默認(rèn)情況下,它是 db_auth,即憑據(jù)存儲在數(shù)據(jù)庫中。對于LDAP身份驗證,請將其設(shè)置為 ldap_auth。
  • self_registration:啟用/禁用用戶注冊功能。禁用時,新用戶只能由 Admin 用戶創(chuàng)建,只有管理員用戶可以在 Harbor 中創(chuàng)建新用戶。注意:當(dāng) auth_mode 設(shè)置為 ldap_auth 時,自注冊功能將始終處于禁用狀態(tài),并且該標(biāo)志被忽略。 
  • Token_expiration:由令牌服務(wù)創(chuàng)建的令牌的到期時間(分鐘),默認(rèn)為 30 分鐘。
  • project_creation_restriction:用于控制哪些用戶有權(quán)創(chuàng)建項目的標(biāo)志。默認(rèn)情況下,每個人都可以創(chuàng)建一個項目。 如果將其值設(shè)置為“adminonly”,那么只有 admin 可以創(chuàng)建項目。
  • verify_remote_cert:打開或關(guān)閉,默認(rèn)打開。此標(biāo)志決定了當(dāng)Harbor與遠(yuǎn)程 register 實例通信時是否驗證 SSL/TLS 證書。 將此屬性設(shè)置為 off 將繞過 SSL/TLS 驗證,這在遠(yuǎn)程實例具有自簽名或不可信證書時經(jīng)常使用。

另外,默認(rèn)情況下,Harbor 將鏡像存儲在本地文件系統(tǒng)上。在生產(chǎn)環(huán)境中,可以考慮 使用其他存儲后端而不是本地文件系統(tǒng),如 S3、Openstack Swif、Ceph 等對象存儲。但需要更新 common/templates/registry/config.yml 文件。

Harbor的默認(rèn)鏡像存儲路徑在 /data/registry 目錄下,映射到docker容器里面的 /storage 目錄下。

這個參數(shù)是在 docker-compose.yml 中指定的,在 docker-compose up -d 運行之前修改。

如果希望將 Docker 鏡像存儲到其他的磁盤路徑,可以修改這個參數(shù)。

(3)啟動 Harbor

cd /usr/local/harbor/
./install.sh

(4)創(chuàng)建一個新項目

(1)瀏覽器訪問:http://20.0.0.10 登錄 Harbor WEB UI 界面,默認(rèn)的管理員用戶名和密碼是 admin/Harbor12345

(2)輸入用戶名和密碼登錄界面后可以創(chuàng)建一個新項目。點擊“新建項目”按鈕創(chuàng)建兩個項目 

(3)填寫項目名稱為“xy101”、“zx”,點擊“確定”按鈕,一個公開,一個私有,創(chuàng)建新項目訪問級別公開:項目中的鏡像所有人都能下載,未登錄倉庫的用戶都能下載

訪問級別私有:必須先登錄用戶,而且必須是項目的成員才能下載

(5)創(chuàng)建用戶

點擊“用戶管理”,點擊“創(chuàng)建用戶”;創(chuàng)建兩個用戶

將成員分別加入到項目中;如下圖所示

點擊項目,選擇scj項目,點擊成員,點擊+用戶,姓名zx,角色項目管理員,創(chuàng)建

zx101項目中也將這兩個用戶添加

(6)本地上傳鏡像

vim /etc/docker/daemon.json
"insecure-registries": ["http://20.0.0.10"]
 
systemctl reload docker
docker info

docker login -u admin -p Harbor12345 http://20.0.0.10 #以admin用戶登錄倉庫;admin為管理員
docker tag centos:7 20.0.0.10/zx101/centos:zx  #為鏡像添加標(biāo)簽
docker push 20.0.0.10/zx101/centos:zx  #推送鏡像到倉庫
 
docker tag nginx:latest 20.0.0.10/zx101/nginx:zx
docker push 20.0.0.10/zx101/nginx:zx

(7)從Harbor下載鏡像

添加一臺docker服務(wù)器20.0.0.20
修改其配置,,對接私有倉庫
 
vim /etc/docker/daemon.json 
{
   "insecure-registries": ["http://20.0.0.10"]
}
 
 
systemctl reload docker.service
docker pull 20.0.0.10/zx101/nginx:zx

如何從私有倉庫下載鏡像?

scj項目為私有倉庫,內(nèi)包含一個nginx鏡像

在20.0.0.20服務(wù)器登錄zx用戶     
docker login -u zx -p Abc123456 http://20.0.0.10
docker pull 20.0.0.10/scj/nginx:scj
 
#想下載私有倉庫的鏡像,必須先登錄項目中存在的用戶再進行下載,若登錄項目中存在的用戶是無法下載的
退出用戶:docker logout http://20.0.0.10

為成員設(shè)置標(biāo)簽時,維護人員具有下載刪除上傳權(quán)限,訪客只有下載權(quán)限

docker pull 時,公開項目的鏡像可以被任意用戶拉取,私有項目的鏡像需要先用項目成員登錄倉庫才能拉取

docker push 時 需要先用具有上傳權(quán)限的項目成員登錄倉庫才能推送鏡像

5、鏡像同步

在20.0.0.20安裝部署Harbor

快速安裝

20.0.0.10

cd /opt
scp harbor-offline-installer-v1.10.18.tgz 20.0.0.20:/opt
cd /usr/local/bin/
scp docker-compose 20.0.0.20:`pwd`

20.0.0.20

docker-compose -v  #查看docker-compose是否安裝
cd /opt
tar xf harbor-offline-installer-v1.10.18.tgz
mv harbor /usr/local/
cd /usr/local/harbor/
vim harbor.yml

修改兩臺服務(wù)器指定倉庫地址

20.0.0.20

vim /etc/docker/daemon.json
 
{
   "insecure-registries": ["http://20.0.0.10","http://20.0.0.20"]
}
 
 
systemctl reload docker
docker info
 
./install.sh

20.0.0.10

vim /etc/docker/daemon.json
{
  "insecure-registries": ["http://20.0.0.10","http://20.0.0.20"]
}
 
systemctl reload docker
docker info

登錄兩臺服務(wù)器的harbor

(1)定時拉取

20.0.0.10服務(wù)器是存在鏡像,20.0.0.20是空倉庫

20.0.0.10創(chuàng)建倉庫:點擊倉庫管理,點擊新建目標(biāo)

20.0.0.20創(chuàng)建倉庫:點擊倉庫管理,點擊新建目標(biāo)

20.0.0.20harbor(定時拉取)

點擊復(fù)制管理,點擊新建規(guī)則

等待一分鐘即可

(2)主動推送

刪除20.0.0.20中添加的zx01規(guī)則,測試主動推送

20.0.0.10harbor

點擊復(fù)制管理,點擊新建規(guī)則

20.0.0.10服務(wù)器中上傳鏡像進行測試

6、管理harbor

查看harbor下容器狀態(tài)

20.0.0.10

cd /usr/local/harbor   #必須在docker-compose.yml存在的目錄下執(zhí)行命令
docker-compose ps 

若發(fā)現(xiàn)其中有的容器狀態(tài)不支持,顯示down,如何解決?

1、首先使用docker-compose restart重啟看是否能夠解決

2、若任然有組件不正常,先使用docker-compose down停止所有容器并刪除;再使用docker-compose up -d重新創(chuàng)建啟動容器

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Docker Desktop使用教程(圖文教程)

    Docker Desktop使用教程(圖文教程)

    本文主要介紹了Docker Desktop使用教程,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • yum下載rpm以及相關(guān)依賴的方式離線安裝docker

    yum下載rpm以及相關(guān)依賴的方式離線安裝docker

    今天小編就為大家分享一篇關(guān)于yum下載rpm以及相關(guān)依賴的方式離線安裝docker,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Docker容器進入的4種方式(小結(jié))

    Docker容器進入的4種方式(小結(jié))

    本文主要介紹了Docker容器進入的4種方式(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • MongoDB從入門到實戰(zhàn)之Docker快速安裝MongoDB的詳細(xì)過程

    MongoDB從入門到實戰(zhàn)之Docker快速安裝MongoDB的詳細(xì)過程

    這篇文章主要介紹了MongoDB從入門到實戰(zhàn)之Docker快速安裝MongoDB的詳細(xì)過程,本文給大家分享詳細(xì)實戰(zhàn)教程,幫助大家快速把MongoDB環(huán)境搭建起來,感興趣的朋友一起看看吧
    2025-05-05
  • Docker端口映射后,外機訪問不了的問題及解決

    Docker端口映射后,外機訪問不了的問題及解決

    Docker端口映射后外機訪問不了的問題可能包括:網(wǎng)絡(luò)配置錯誤(需與宿主機在同一網(wǎng)段)、容器未啟動、防火墻設(shè)置問題(需關(guān)閉或開放映射端口)、未開啟IP轉(zhuǎn)發(fā)
    2025-02-02
  • 詳解Docker 端口映射與容器互聯(lián)

    詳解Docker 端口映射與容器互聯(lián)

    這篇文章主要介紹了詳解Docker 端口映射與容器互聯(lián) ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • pod污點taint?與容忍度tolerations詳解

    pod污點taint?與容忍度tolerations詳解

    這篇文章主要為大家介紹了pod污點taint與容忍度tolerations示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 使用docker離線部署dify之docker鏡像問題及部署過程

    使用docker離線部署dify之docker鏡像問題及部署過程

    這篇文章主要給大家介紹了關(guān)于使用docker離線部署dify之docker鏡像問題及部署過程,通過配置多個鏡像源解決了,此外還介紹了如何將Dify鏡像轉(zhuǎn)移到離線環(huán)境并啟動服務(wù),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • 安裝Docker配置阿里云鏡像加速(圖文教程)

    安裝Docker配置阿里云鏡像加速(圖文教程)

    dcker配置阿里云鏡像加速,其目的是為了在提高docker鏡像下載速度,本文主要介紹了安裝Docker配置阿里云鏡像加速,具有一定的參考價值,感興趣的可以了解一下
    2022-04-04
  • Docker私有倉庫管理和刪除本地倉庫中的鏡像

    Docker私有倉庫管理和刪除本地倉庫中的鏡像

    這篇文章主要介紹了Docker私有倉庫管理和刪除本地倉庫中的鏡像,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01

最新評論