最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker中的harbor私有倉庫詳解

 更新時間:2025年10月09日 09:56:52   作者:gtyy9  
Harbor是VMware開源的企業(yè)級Docker鏡像倉庫,基于Docker?Registry擴展了權(quán)限控制、審計日志、鏡像復(fù)制等功能,支持HTTP/HTTPS協(xié)議,通過docker-compose部署,包含7個容器組件,提供圖形化界面和RESTful?API管理

一、Harbor概述

1、Harbor的概念

Harbor是VMware公司開源的企業(yè)級Docker Registry項目,其目標是幫助用戶迅速搭建一個企業(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的特性

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

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

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

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

5.圖形化用戶界面: 用戶可以通過瀏覽器來瀏覽,搜索鏡像倉庫以及對項目進行管理

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

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

8.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: Harbor 的Registry、 UI、Token 服務(wù)等組件,都處在nginx 反向代理后邊。該代理將來自瀏覽器、docker clients的請求轉(zhuǎn)發(fā)到后端不同的服務(wù)上

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

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

  • UI (harbor-ui) :提供圖形化界面,幫助用戶管理Registry. 上的鏡像( image),并對用戶進行授權(quán)
  • WebHook: 為了及時獲取Registry.上image 狀態(tài)變化的情況,在Registry. 上配置 Webhook,把狀態(tài)變化傳遞給UI模塊
  • Token 服務(wù):負責根據(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ù),負責儲存用戶權(quán)限、審計日志、Docker 鏡像分組信息等數(shù)據(jù)

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

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

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

二、Harbor 部署

環(huán)境準備

Harbor服務(wù)器 192.168.52.140 docker-ce、docker-compose、harbor-offline-v1.2.2

client服務(wù)器 192.168.52.130docker-ce

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

下載或者上傳 Docker-Compose

curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose    #下載安裝包,我這里直接傳入下載的安裝包
 
chmod +x /usr/local/bin/docker-compose
 
docker-compose -v

打開IP轉(zhuǎn)發(fā)功能

vim /etc/sysctl.conf 
sysctl -p
net.ipv4.ip_forward = 1

2、部署 Harbor 服務(wù)

下載或上傳 Harbor 安裝程序

wget http://harbor.orientsoft.cn/harbor-1.2.2/harbor-offline-installer-v1.2.2.tgz   #下載安裝包,我這里傳入下載的安裝包
 
tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/

修改harbor安裝的配置文件

vim /usr/local/harbor/harbor.cfg
--5行--修改,設(shè)置為Harbor服務(wù)器的IP地址或者域名
hostname = 192.168.52.140
--59行--指定管理員的初始密碼,默認的用戶名/密碼是admin/Harbor12345
harbor_admin_password = Harbor12345  

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

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

  • hostname:用于訪問用戶界面和 register 服務(wù)。它應(yīng)該是目標機器的 IP 地址或完全限定的域名(FQDN),例如 192.168.80.10 或 hub.kgc.cn。不要使用 localhost 或 127.0.0.1 為主機名。
  • ui_url_protocol:(http 或 https,默認為 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)閉,默認打開。打開此屬性時,準備腳本創(chuàng)建私鑰和根證書,用于生成/驗證注冊表令牌。當由外部來源提供密鑰和根證書時,將此屬性設(shè)置為 off。
  • ssl_cert:SSL 證書的路徑,僅當協(xié)議設(shè)置為 https 時才應(yīng)用。
  • secretkey_path:用于在復(fù)制策略中加密或解密遠程 register 密碼的密鑰路徑。

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

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

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

另外,默認情況下,Harbour 將鏡像存儲在本地文件系統(tǒng)上。

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

3、啟動 Harbor

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

 

4、 查看 Harbor 啟動鏡像

cd /usr/local/harbor/
docker-compose ps

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

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

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

(3)填寫項目名稱為“my”,點擊“確定”按鈕,創(chuàng)建新項目

(4)此時可使用 Docker 命令在本地通過 127.0.0.1 來登錄和推送鏡像。默認情況下,Registry 服務(wù)器在端口 80 上偵聽。

登錄 Harbor

docker login http://127.0.0.1
或者
docker login -u admin -p Harbor12345 http://127.0.0.1

下載鏡像進行測試

docker pull nginx

將鏡像打標簽

格式:docker tag 鏡像:標簽 倉庫IP/項目名稱/鏡像名:標簽
docker tag nginx:latest 127.0.0.1/my/nginx:v1

上傳鏡像到 Harbor

docker push 127.0.0.1/my/nginx:v1

在 Harbor 界面 my 目錄下可看見此鏡像及相關(guān)信息

6. 在其他客戶端上傳鏡像

以上操作都是在 Harbor 服務(wù)器本地操作。如果其他客戶端登錄到 Harbor,就會報如下錯誤。

出現(xiàn)這問題的原因為Docker Registry 交互默認使用的是 HTTPS,但是搭建私有鏡像默認使用的是 HTTP 服務(wù),所以與私有鏡像交互時出現(xiàn)以下錯誤。

docker login -u admin -p Harbor12345 http://192.168.52.140

在 Docker 客戶端配置操作

//解決辦法是:在 Docker server 啟動的時候,增加啟動參數(shù),默認使用 HTTP 訪問。

解決辦法是:
第一種:在Docker server啟動的時候,增加啟動參數(shù),默認使用 HTTP 訪問。
vim /usr/lib/systemd/system/docker.service
--13行--修改
ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.52.140 --containerd=/run/containerd/containerd.sock
或
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.2.200
第二種:vim /etc/ docker/daemon.json
{
"insecure-registries": ["192.168.52.140"],
#添加,注意用逗號結(jié)尾
"registry-mirrors": ["https://6ijb8ubo.mirror.aliyuncs.com"]
}

重啟 Docker,再次登錄

systemctl daemon-reload
systemctl restart docker
docker login -u admin -p Harbor12345 http://192.168.52.140

將自動保存憑據(jù)到/root/.docker/config.json,下次登錄時可直接使用憑據(jù)登錄 Harbor

下載鏡像進行測試

docker pull 192.168.52.140/my/nginx:v1

上傳鏡像進行測試

docker pull centos
docker tag centos:latest 192.168.52.140/my/centos:v2
docker push 192.168.52.140/my/centos:v2

刷新 Harbor 的 Web 管理界面進行查看,會發(fā)現(xiàn)xkq項目里面有兩個鏡像

三、 維護管理Harbor

1. 創(chuàng)建 Harbor 用戶

創(chuàng)建用戶并分配權(quán)限

在 Web 管理界面中單擊系統(tǒng)管理 -> 用戶管理 -> +用戶,

填寫用戶名為“my”,郵箱為“my@qq.com”,全名為“my”,密碼為“Abc123123”,注釋可省略。

附:用戶創(chuàng)建成功后,單擊左側(cè)“...”按鈕可將上述創(chuàng)建的用戶設(shè)置為管理員角色或進行刪除操作,本例不作任何設(shè)置。

添加項目成員

單擊項目 ->my-> 成員 -> + 成員,填寫上述創(chuàng)建的用戶my并分配角色為“開發(fā)人員”。

附:此時單擊左側(cè)“...”按鈕仍然可對成員角色進行變更或者刪除操作

在客戶端上使用普通賬戶操作鏡像

刪除上述打標簽的本地鏡像

docker rmi 192.168.52.140/my/centos:v2

先退出當前用戶,然后使用上述創(chuàng)建的賬戶zhangsan 登錄

docker logout 192.168.52.140
 
docker login 192.168.52.140
或
docker login -u my -p Abc123123 http://192.168.52.140

下載和上傳鏡像進行測試

docker pull 192.168.52.140/my/centos:v2
 
docker tag centos:latest 192.168.52.140/my/centos:v3
docker push 192.168.52.140/my/centos:v3

查看日志

Web 界面日志,操作日志按時間順序記錄用戶相關(guān)操作

2、遠程同步

部署docker-compose服務(wù)

下載或者上傳 Docker-Compose

curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose    #下載安裝包,我這里直接傳入下載的安裝包
mv docker-compose /usr/local/bin/ 
chmod +x /usr/local/bin/docker-compose
docker-compose -v

部署 Harbor 服務(wù)

下載或上傳 Harbor 安裝程序

wget http://harbor.orientsoft.cn/harbor-1.2.2/harbor-offline-installer-v1.2.2.tgz   #下載安裝包,我這里傳入下載的安裝包
 
tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/

修改harbor安裝的配置文件

vim /usr/local/harbor/harbor.cfg
--5行--修改,設(shè)置為Harbor服務(wù)器的IP地址或者域名
hostname = 192.168.52.130
--59行--指定管理員的初始密碼,默認的用戶名/密碼是admin/Harbor12345
harbor_admin_password = Harbor12345  
cd /usr/local/harbor/
./prepare
./install.sh

 

瀏覽器訪問:http://192.168.52.130登錄 Harbor WEB UI 界面 

配置同步

140倉庫設(shè)置

140切換用戶admin-> 復(fù)制管理 -> +目標 -> 目標名稱my -> 目標URLhttp://192.168.52.140 -> 用戶名密碼admin/Harbor12345 -> 確定

添加規(guī)則 -> 項目 -> 選擇項目名稱 -> 復(fù)制 -> +復(fù)制規(guī)則 -> 名稱my ->啟動 -> 目標名稱gb ->測試連接 ->確定

 

130登錄后刷新

總結(jié)

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

相關(guān)文章

  • Docker 教程之CentOS安裝 Docker

    Docker 教程之CentOS安裝 Docker

    這篇文章主要介紹了Docker 教程之CentOS安裝 Docker的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • 解決docker目錄內(nèi)存不足擴容處理方案

    解決docker目錄內(nèi)存不足擴容處理方案

    文章介紹了Docker存儲目錄遷移方法:因系統(tǒng)盤空間不足,需將Docker數(shù)據(jù)遷移到更大磁盤(如/home/docker),通過修改daemon.json配置、重啟服務(wù)并驗證遷移成功,最終釋放系統(tǒng)盤空間
    2025-09-09
  • docker從安裝入門到應(yīng)用部署及私有倉庫搭建基礎(chǔ)命令

    docker從安裝入門到應(yīng)用部署及私有倉庫搭建基礎(chǔ)命令

    這篇文章主要為大家介紹了docker從安裝入門到應(yīng)用部署及私有倉庫搭建基礎(chǔ)命令,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-04-04
  • docker守護進程配置代理

    docker守護進程配置代理

    本文主要介紹了docker守護進程配置代理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-06-06
  • Docker實現(xiàn)分布式應(yīng)用功能教程

    Docker實現(xiàn)分布式應(yīng)用功能教程

    這篇文章主要介紹了Docker實現(xiàn)分布式應(yīng)用功能,涉及docker分布式應(yīng)用、負載均衡相關(guān)實現(xiàn)技巧與操作注意事項,需要的朋友可以參考下
    2018-06-06
  • docker安裝opengauss數(shù)據(jù)庫配置過程詳解

    docker安裝opengauss數(shù)據(jù)庫配置過程詳解

    這篇文章主要為大家介紹了docker安裝opengauss數(shù)據(jù)庫配置過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • apt命令安裝docker的實現(xiàn)步驟

    apt命令安裝docker的實現(xiàn)步驟

    本文詳細介紹了在Ubuntu/Debian系統(tǒng)上使用apt命令安裝Docker和Docker Compose的完整流程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2026-04-04
  • Docker部署postgresql的方法實現(xiàn)

    Docker部署postgresql的方法實現(xiàn)

    本文主要介紹了Docker部署postgresql的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-01-01
  • Docker環(huán)境下快速部署Ollama與Open-WebUI的詳細指南

    Docker環(huán)境下快速部署Ollama與Open-WebUI的詳細指南

    在本篇文章中,我們將深入探討如何在Docker中高效部署 Ollama 和 Open-WebUI,并解決在實際使用中常見的問題,有需要的小伙伴可以跟隨小編一起學習一下
    2026-03-03
  • Flask應(yīng)用封裝成Docker服務(wù)的完整操作指南

    Flask應(yīng)用封裝成Docker服務(wù)的完整操作指南

    本文詳細介紹了如何使用Docker將Flask應(yīng)用容器化,包括實現(xiàn)原理、詳細操作步驟、進階配置、常見問題及解決方案和生產(chǎn)環(huán)境注意事項,需要的朋友可以參考下
    2025-04-04

最新評論

本溪| 普定县| 建昌县| 梨树县| 格尔木市| 郓城县| 高邑县| 丰都县| 鄂伦春自治旗| 林口县| 平南县| 鸡泽县| 涡阳县| 葵青区| 嵊泗县| 潮州市| 门头沟区| 兴国县| 天柱县| 山丹县| 阿图什市| 民勤县| 水富县| 西充县| 万山特区| 霍林郭勒市| 北流市| 无极县| 潢川县| 丰城市| 金堂县| 霍林郭勒市| 康乐县| 黄冈市| 阿拉善右旗| 汉寿县| 河南省| 江门市| 新巴尔虎左旗| 错那县| 浑源县|