【Harbor v2.13.0 詳細安裝步驟 安裝證書啟用 HTTPS】

Harbor v2.13.0 詳細安裝步驟(啟用 HTTPS)


1. 環境準備

  • 系統要求:至少 4GB 內存,100GB 磁盤空間。

  • 已安裝組件

    • Docker(版本 ≥ 20.10)
    • Docker Compose(版本 ≥ v2.0)
  • 域名映射

    echo "192.168.0.223 harbor.host3" | sudo tee -a /etc/hosts
    

2. 下載并解壓 Harbor 離線安裝包

github下載地址: Release v2.13.0

# 解壓到指定目錄(如 /opt/harbor)
sudo tar -xzvf harbor-offline-installer-v2.13.0_6.tgz -C /opt
cd /opt/harbor

3. 生成 SSL 證書(自簽名)

步驟 1:創建證書目錄

sudo mkdir -p /opt/harbor/certs
cd /opt/harbor/certs

步驟 2:生成 CA 根證書

# 生成 CA 私鑰
openssl genrsa -out ca.key 4096# 生成 CA 證書(有效期 10 年)
openssl req -x509 -new -nodes -sha512 -days 3650 \-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.host3" \-key ca.key \-out ca.crt

步驟 3:生成服務器證書

# 生成服務器私鑰
openssl genrsa -out harbor.host3.key 4096# 生成證書簽名請求(CSR)
openssl req -sha512 -new \-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.host3" \-key harbor.host3.key \-out harbor.host3.csr# 生成證書擴展文件(v3.ext)
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage=digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage=serverAuth
subjectAltName=@alt_names[alt_names]
DNS.1=harbor.host3
EOF# 使用 CA 簽發服務器證書
openssl x509 -req -sha512 -days 3650 \-extfile v3.ext \-CA ca.crt -CAkey ca.key -CAcreateserial \-in harbor.host3.csr \-out harbor.host3.crt

步驟 4:配置證書權限

sudo chmod 644 /opt/harbor/certs/*

4. 配置 Harbor

編輯 harbor.yml

sudo cp harbor.yml.tmpl harbor.yml
sudo nano harbor.yml
# 關鍵配置項:
hostname: harbor.host3          # 域名
http:#port: 80                      # 禁用 HTTP(設為空或注釋)
https:port: 443certificate: /opt/harbor/certs/harbor.host3.crtprivate_key: /opt/harbor/certs/harbor.host3.keyharbor_admin_password: Harbor12345  # 管理員密碼
database:password: root123                # 數據庫密碼
data_volume: /data/harbor          # 數據存儲路徑

5. 安裝 Harbor

注意檢查端口是否占用

# 查看 80 端口占用情況
sudo lsof -i :443
# 或使用 netstat 命令
netstat -tuln | grep 443
# 運行安裝腳本(自動啟動服務)
sudo ./install.sh --with-trivy

6. 驗證安裝

檢查服務狀態

docker compose ps
# 預期輸出所有服務狀態為 "running"

訪問 Harbor Web 界面

  • 瀏覽器訪問:https://harbor.host3
  • 用戶名:admin
  • 密碼:Harbor12345

解決瀏覽器證書警告

# 將 CA 證書導入系統信任庫(以 Ubuntu 為例)
sudo cp /opt/harbor/certs/ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

7. 防火墻配置(如需)

# 開放 443 端口
sudo ufw allow 443/tcp
sudo ufw reload

常見問題解決

1. 常見問題

  • ** 證書不信任錯誤**

    • 現象x509: certificate signed by unknown authority

    • 解決:確保客戶端已正確導入 Harbor 的 ca.crt

    • #Windows 系統
      1.從 Harbor 服務器獲取 /opt/harbor/certs/ca.crt 文件,發送到 Windows 客戶端
      2.打開證書管理器 win+R    certmgr.msc
      3.導航至 ?受信任的根證書頒發機構 → 證書?,右鍵選擇 ?所有任務 → 導入?,選擇 ca.crt 文件完成導入
      #Ubuntu/Debian# 1復制證書到系統目錄sudo cp ca.crt /usr/local/share/ca-certificates/harbor-ca.crt  # 2更新證書庫sudo update-ca-certificates  # 3重啟 Docker(若需通過 Docker 訪問 Harbor)sudo systemctl restart docker  
      #CentOS/RedHat# 1復制證書到系統目錄sudo cp ca.crt /etc/pki/ca-trust/source/anchors/  # 2更新證書庫sudo update-ca-trust  # 3重啟 Dockersudo systemctl restart docker
      #macOS 系統導入 CA 證書
      #?1鑰匙串訪問工具?#雙擊 ca.crt 文件,選擇 ?系統? 鑰匙串,點擊 ?添加?。#右鍵證書 → ?顯示簡介 → 信任?,設置為 ?始終信任?。
      #?2終端驗證?# 檢查證書是否生效openssl s_client -connect harbor.host3:443 -showcerts  
      
  • DNS 解析失敗

    • 現象Could not resolve host: harbor.host3

    • 解決:檢查客戶端主機的 /etc/hosts 或 DNS 服務器配置。

    • echo "192.168.0.223 harbor.host3" | sudo tee -a /etc/hosts
      
  • IP 訪問證書警告

    • 現象:訪問 https://192.168.0.223 提示證書無效。

    • 解決:證書必須包含 IP SAN(即 alt_names 中添加 IP.1 = 192.168.0.223)。

    • 現象:瀏覽器提示 “不安全連接”。

    • 解決:將 ca.crt 導入瀏覽器或系統信任庫。

2. Harbor 服務未啟動

  • 檢查日志

    tail -f /var/log/harbor/*.log
    
  • 重新部署

    docker compose down -v
    sudo ./install.sh
    

3. Docker 客戶端信任自簽名證書

# 在 Docker 客戶端機器操作
sudo mkdir -p /etc/docker/certs.d/harbor.host3
sudo scp root@harbor.host3:/opt/harbor/certs/ca.crt /etc/docker/certs.d/harbor.host3/
sudo systemctl restart docker
# 在 Harbor 服務器檢查防火墻規則
sudo ufw allow 443/tcp
sudo ufw reload

4.Docker 客戶端推送鏡像

# 登錄 Harbor
docker login harbor.host3 -u admin -p Harbor12345# 推送測試鏡像
docker pull nginx:latest
docker tag nginx:latest harbor.host3/library/nginx:latest
docker push harbor.host3/library/nginx:latest

Harbor 核心功能與使用指南


一、Harbor 與傳統 Docker Registry 的核心優勢

  1. 企業級功能支持
    • 基于角色的訪問控制(RBAC):支持項目級別的權限管理(如管理員、開發者、訪客角色),可精細控制用戶對鏡像的讀寫權限。
    • 鏡像復制與同步:支持跨 Harbor 實例的鏡像自動同步,適用于混合云或多數據中心場景。
    • 漏洞掃描與安全審計:集成 Trivy 等工具自動掃描鏡像漏洞,并記錄所有操作日志用于審計。
    • LDAP/AD 集成:可直接對接企業已有的 LDAP/AD 系統,統一用戶認證。
  2. 易用性與擴展性
    • 圖形化界面(Web UI):提供直觀的鏡像管理、項目配置和用戶權限設置界面。
    • RESTful API:支持自動化集成到 CI/CD 流程中,例如通過 API 創建項目或管理鏡像。
    • 多存儲后端支持:支持本地存儲、S3、Ceph 等存儲方案,適應不同規模的部署需求。
  3. 與 Kubernetes 生態的深度集成
    Harbor 可無縫對接 Kubernetes,作為私有鏡像倉庫,支持 Helm Chart 存儲(需啟用 ChartMuseum)。

二、Harbor 的核心使用場景

  1. 企業內部鏡像管理
    • 統一存儲企業內部開發的 Docker 鏡像,避免依賴公共倉庫。
    • 通過項目隔離不同團隊的鏡像資源,例如 project-frontendproject-backend
  2. 混合云鏡像分發
    • 在多個 Harbor 實例間配置鏡像復制策略,實現跨云或跨地域的鏡像同步。
  3. 安全合規與審計
    • 掃描生產環境鏡像的漏洞,記錄操作日志以滿足合規要求。

三、Harbor 鏡像推送與拉取操作

1. 推送鏡像到 Harbor

  • 步驟 1:登錄 Harbor

    docker login harbor.host3 -u admin -p Harbor12345
    

    注意:若使用自簽名證書,需將 CA 證書放入 /etc/docker/certs.d/harbor.host3

  • 步驟 2:打標簽
    鏡像名稱需包含 Harbor 地址和項目名稱:

    docker tag nginx:latest harbor.host3/myproject/nginx:v1
    
  • 步驟 3:推送鏡像

    docker push harbor.host3/myproject/nginx:v1
    

2. 從 Harbor 拉取鏡像

docker pull harbor.host3/myproject/nginx:v1

3. 鏡像管理

  • Web UI 操作:通過瀏覽器訪問 https://harbor.host3,可在項目中查看、刪除鏡像或配置復制策略。

  • API 操作:使用 RESTful API 自動化管理,例如列出所有鏡像:

    curl -X GET "https://harbor.host3/api/v2.0/projects/myproject/repositories" -H "Authorization: Bearer <TOKEN>"
    

四、Harbor 與其他工具對比

工具優勢局限性
Docker Hub公共鏡像豐富,適合個人開發者缺乏企業級功能,安全性低
Nexus 3支持多種倉庫類型(Maven、Docker)Docker 管理功能較 Harbor 弱
Harbor企業級安全、鏡像復制、漏洞掃描部署復雜度較高

五、Harbor 維護與管理

  1. 日志與監控
    • 日志收集:Harbor 日志默認存儲在 /var/log/harbor,可通過 ELK 或 Prometheus 集成實現集中監控。
    • 服務狀態檢查:使用 docker-compose ps 查看容器運行狀態。
  2. 備份與恢復
    • 數據備份:定期備份 Harbor 數據庫 (harbor-db) 和存儲卷 (/data/harbor)。
    • 配置文件備份:保存 harbor.yml 和證書文件,便于快速恢復。
  3. 升級與擴展
    • 版本升級:下載新版本安裝包,運行 ./prepare./install.sh,注意遷移舊數據。
    • 高可用部署:通過 Redis 集群和 Ceph 存儲實現 Harbor 組件的高可用。
  4. 安全維護
    • 定期更新證書:自簽名證書需每年更新,避免服務中斷。
    • 漏洞掃描策略:配置定時掃描任務,攔截高風險鏡像。

六、常見問題解決

  1. 拉取鏡像超時
    • 檢查網絡:確保防火墻開放 443 端口(HTTPS)或 80 端口(HTTP)。
  2. Web UI 無法訪問
    • 服務狀態:運行 docker-compose logs 查看 Nginx 或 Core 服務日志。

七、總結

Harbor 是企業級容器鏡像管理的首選工具,其核心價值在于 安全性可擴展性易用性。通過合理配置鏡像推送、權限管理和存儲后端,可大幅提升 DevOps 流程的效率。維護時需重點關注日志監控、備份策略和高可用部署,確保服務穩定

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/82002.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/82002.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/82002.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

以pytest_addoption 為例,講解pytest框架中鉤子函數的應用

鉤子函數&#xff08;Hook Function&#xff09;的概念 鉤子函數&#xff08;Hook Function&#xff09;是軟件框架中預定義的回調接口&#xff0c;允許開發者在程序執行的特定階段插入自定義邏輯&#xff0c;以擴展或修改框架的默認行為。在 pytest 中&#xff0c;鉤子函數覆…

合并兩個有序鏈表 - 簡單

************* C topic: 21. 合并兩個有序鏈表 - 力扣&#xff08;LeetCode&#xff09; ************* Give the topic an inspection. Hi, guys, how is your holiday break? I went to 黃山 in the past few days. The mount Huang is really beautiful. 天都峰 is real…

13.Spring boot中使用Actuator 監控

13.Spring boot中使用Actuator 監控 Spring Boot Actuator 是 Spring Boot 提供的一個強大的監控和管理工具&#xff0c;它通過暴露各種端點&#xff08;Endpoints&#xff09;來提供應用程序的運行時信息。這些端點可以幫助開發者和管理員監控應用程序的健康狀況、性能指標、…

Python+Scrapy跨境電商爬蟲實戰:從亞馬遜/沃爾瑪數據采集到反爬攻克(附Pangolin API高效方案)

從零實戰到反爬攻克&#xff0c;揭秘跨境數據抓取全流程與Pangolin Scrape API終極方案 在當今數據驅動的跨境電商時代&#xff0c;誰掌握了優質的市場數據&#xff0c;誰就掌握了成功的關鍵。隨著全球電商市場規模持續擴大&#xff08;據Statista最新報告顯示&#xff0c;2025…

0基礎學習鴻蒙開發-HarmonyOS4

一、初識 1. 開發工具 官網 開發-HarmonyOS NEXT鴻蒙應用開發平臺-華為開發者聯盟 2. ArkTS 二、TypeScript 基本語法 1.變量聲明 2. 條件控制 注意 在TypeScrips中 空字符串數字0、null、undefined 都坡認為是false 其它值則為true if (num) {// num 非空執行 } 3. 循環迭…

深度學習中常用的符號表達式

在論文寫作過程中&#xff0c;常常涉及到一些關鍵的符號的表達&#xff0c;為了更加規范常用的一些符號表達&#xff0c;現將其總結如下&#xff08;該文件會持續性更新&#xff09;&#xff1a; 數字 x x x : 標量 x \mathbf{x} x : 向量 X \mathbf{X} X : 矩陣 X \mathsf{X}…

react naive 網絡框架源碼解析

本文取 react native 兩個區別很大的版本做分析&#xff08;0.76.5、0.53.3&#xff09; 一、0.76.5 版fetch 全流程排查 1、JS 端的實現 隨手寫一個fetch&#xff0c;點開。 我們這里常用的還是手機端&#xff0c;因此選擇 react-native&#xff0c;react-native-windows …

OpenCV 圖形API(81)圖像與通道拼接函數-----透視變換函數warpPerspective()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 對圖像應用透視變換。 函數 warpPerspective 使用指定的矩陣對源圖像進行變換&#xff1a; dst ( x , y ) src ( M 11 x M 12 y M 13 M 31 x…

深度學習在油氣地震資料反卷積中的應用

深度學習在油氣地震資料反卷積中的應用 基本原理 在油氣地震勘探中&#xff0c;反卷積(Deconvolution)是一種重要的信號處理技術&#xff0c;用于提高地震資料的分辨率。傳統方法(如維納濾波、預測反卷積等)存在對噪聲敏感、假設條件嚴格等局限。深度學習方法通過數據驅動的方…

Java開發者面試實錄:微服務架構與Spring Cloud的應用

面試場景 面試官: 請介紹一下你的基本情況。 程序員: 大家好&#xff0c;我叫張小明&#xff0c;今年27歲&#xff0c;碩士學歷&#xff0c;擁有5年的Java后端開發經驗。主要負責基于Spring Boot開發企業級應用&#xff0c;以及微服務架構的設計和實現。 面試官: 好的&#…

?Spring + Shiro 整合的核心要點及詳細實現說明

在 Spring 項目中集成 Apache Shiro 可以實現輕量級的安全控制&#xff08;認證、授權、會話管理等&#xff09;。以下是 ?Spring Shiro 整合的核心要點及詳細實現說明&#xff1a; 一、Spring 與 Shiro 整合的核心組件 ?組件??作用?ShiroFilterFactoryBean創建 Shiro 過…

網絡編程核心技術解析:從Socket基礎到實戰開發

網絡編程核心技術解析&#xff1a;從Socket基礎到實戰開發 一、Socket編程核心基礎 1. 主機字節序與網絡字節序&#xff1a;數據傳輸的統一語言 在計算機系統中&#xff0c;不同架構對多字節數據的存儲順序存在差異&#xff0c;而網絡通信需要統一的字節序標準&#xff0c;這…

SQLark可以支持PostgreSQL了,有哪些新功能?

SQLark&#xff08;百靈連接&#xff09;是一款國產的數據庫開發和管理工具&#xff0c;用于快速查詢、創建和管理不同類型的數據庫系統&#xff0c;支持達夢、Oracle 和 MySQL 數據庫。 最新發布的 SQLark V3.4 版本新增了對 PostgreSQL 數據庫的支持。我試用了一下&#xff…

【全面解析】Poco C++ Libraries 模塊詳解與使用指南

Poco&#xff08;The Portable Components&#xff09; 是一套現代 C 的跨平臺開發庫&#xff0c;廣泛應用于嵌入式系統、服務端程序、工業控制和 AI 后端服務等領域。其設計理念類似于 Java 的標準庫&#xff0c;為 C 提供“標準的非標準功能”。 本篇文章將帶你全面了解 Poco…

Vue+tdesign t-input-number 設置長度和顯示X號

一、需求 Vuetdesign t-input-number 想要設置input的maxlen和顯示X號 二、實現 t-input&#xff0c;可以直接使用maxlength和clearable屬性 <t-input v-model"value" clearable maxlength10 placeholder"請輸入" clear"onClear" blur&q…

(Go Gin)Gin學習筆記(二):路由配置、基本路由、表單參數、上傳單個文件、上傳多個文件、淺扒路由原理

1. 路由 gin 框架中采用的路優酷是基于httprouter做的 HttpRouter 是一個高性能的 HTTP 請求路由器&#xff0c;適用于 Go 語言。它的設計目標是提供高效的路由匹配和低內存占用&#xff0c;特別適合需要高性能和簡單路由的應用場景。 主要特點 顯式匹配&#xff1a;與其他路由…

Linux下的好玩的命令

在 CentOS 下&#xff0c;有許多有趣且實用的 Linux 命令&#xff0c;可以幫助你更好地了解系統、提升效率或進行娛樂。以下是一些好玩的 Linux 命令及其說明&#xff1a; 1. cowsay 和 cowthink 功能&#xff1a;讓一只牛&#xff08;或其他動物&#xff09;說出你想說的話。…

OpenharmonyOS+RK3568,【編譯燒錄】

文章目錄 1. 摘要 ?2. 代碼下載 &#x1f4e9;3. 編譯 &#x1f5a5;?4. 修改&適配 ??4.1 編譯框架基本概念4.2 vendor & device 目錄4.3 內核編譯4.3.1 如何修改、適配自己的開發板&#xff1f; 4.4 修改外設驅動 5. 燒錄&驗證 &#x1f4cb;參考 1. 摘要 ? …

深度學習模型優化:如何讓數據科學更智能?

深度學習模型優化:如何讓數據科學更智能? 一、引言:為什么優化深度學習模型如此重要? 深度學習的應用已經滲透到數據科學的各個領域,從圖像識別到自然語言處理,從推薦系統到金融風控,每一個智能模型都依賴于數據驅動的訓練。然而,一個模型的性能不僅僅取決于其架構,…

學習Python的第二天之網絡爬蟲

30歲程序員學習Python的第二天之網絡爬蟲的信息提取 BeautifulSoup庫 地址&#xff1a;https://beautifulsoup.readthedocs.io/zh-cn/v4.4.0/ 1、BeautifulSoup4安裝 在windows系統下通過管理員權限運行cmd窗口 運行pip install beautifulsoup4 測試實例 import requests…