Docker 企業(yè)級私有倉庫 Harbor 完整部署實戰(zhàn)指南
前言
在容器化運維與云原生架構(gòu)中,Docker 鏡像倉庫是核心基礎(chǔ)設(shè)施,用于統(tǒng)一存儲、管理、分發(fā)容器鏡像。企業(yè)主要有兩種方案:
- 自建私有倉庫:部署 Harbor,完全私有化、內(nèi)網(wǎng)隔離、自主可控;
- 云廠商托管倉庫:阿里云 ACR、華為云 SWR 等,開箱即用、免運維、國內(nèi)高速分發(fā)。
本文完整講解Harbor 架構(gòu)解析、離線部署、HTTPS 加密、鏡像推拉、阿里云 ACR 實操,對比兩種倉庫方案,適配 CentOS7、銀河麒麟 V10 系統(tǒng),可直接復(fù)刻部署,CSDN 完整實操版。
一、鏡像倉庫整體架構(gòu):自建 Harbor 與云倉庫對比
1. 整體架構(gòu)總覽

- 自建 Harbor:部署在內(nèi)網(wǎng)服務(wù)器,用戶推送鏡像至 Harbor,再同步至各大云廠商鏡像倉庫,實現(xiàn)多環(huán)境統(tǒng)一分發(fā);
- 云廠商 ACR:阿里云托管鏡像倉庫,無需自建服務(wù),直接在線創(chuàng)建倉庫,推拉鏡像。
2. Harbor 內(nèi)部詳細架構(gòu)

Harbor 采用多容器分布式架構(gòu),核心組件如下:
- Nginx:反向代理入口,接收瀏覽器、Docker 客戶端、Notary 客戶端請求;
- Core Service(核心服務(wù)):UI 界面、API 接口、權(quán)限認證,控制中樞;
- Registry V2:Docker 原生鏡像倉庫,存儲鏡像文件;
- DB(MySQL):存儲項目、用戶、權(quán)限、鏡像元數(shù)據(jù);
- Log Collector:日志統(tǒng)一收集;
- Admin Service:系統(tǒng)配置管理;
- Replication Job Services:跨 Harbor 實例鏡像同步;
- Vulnerability Scanning:鏡像漏洞掃描;
- Notary:鏡像簽名安全組件;
- Redis:存儲用戶會話 Session;
- AD/LDAP:對接企業(yè)域控統(tǒng)一認證。
3. Harbor 核心容器組成
Harbor 由以下容器構(gòu)成,通過 Docker Compose 一鍵編排:
ui:Web 管理界面核心服務(wù)log:rsyslog 日志收集容器mysql:數(shù)據(jù)庫容器nginx:反向代理容器registry:Docker 鏡像存儲倉庫adminserver:配置數(shù)據(jù)管理器jobservice:任務(wù)調(diào)度服務(wù)redis:會話存儲notary:鏡像安全簽名組件
硬性版本要求:Docker ≥ 1.10.0,Docker Compose ≥ 1.6.0
二、自建 Harbor 離線部署完整實戰(zhàn)
1. 環(huán)境準備:安裝 Docker 與 Docker Compose
(1)安裝 Docker 引擎(CentOS7)
yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum makecache fast yum -y install docker-ce systemctl start docker systemctl enable docker
(2)安裝 Docker Compose
curl -L https://github.com/docker/compose/releases/download/v2.30.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose docker-compose --version
2. 下載 Harbor 離線安裝包
官方提供 3 種部署方式:
- 在線安裝:聯(lián)網(wǎng)拉取鏡像,速度慢,適合測試;
- 離線安裝:無網(wǎng)絡(luò)可部署,生產(chǎn)首選;
- OVA 鏡像安裝:適配 VMware 虛擬化環(huán)境。
版本下載:https://github.com/goharbor/harbor/releases
tar zxvf harbor-offline-installer-v2.13.2.tgz cd harbor
目錄文件說明:
harbor.yml.tmpl:配置文件模板;install.sh:一鍵安裝腳本;prepare:配置預(yù)處理腳本;harbor.v2.13.2.tar.gz:離線鏡像包。
3. 修改核心配置文件
cp harbor.yml.tmpl harbor.yml vim harbor.yml
必改核心參數(shù)
hostname: 192.168.xxx.xxx # 服務(wù)器IP或域名 http: port: 80 # https: # 測試環(huán)境注釋,生產(chǎn)開啟 # port: 443 # certificate: /usr/local/harbor/key/server.pem # private_key: /usr/local/harbor/key/server.key harbor_admin_password: Harbor123456 # 管理員密碼 database: password: root123456 # 數(shù)據(jù)庫密碼 data_volume: /data/harbor # 數(shù)據(jù)持久化目錄
4. 一鍵安裝并啟動 Harbor
# 基礎(chǔ)安裝 ./install.sh # 開啟漏洞掃描組件 # ./install.sh --with-trivy
Harbor 服務(wù)管理命令
docker-compose up -d # 后臺啟動 docker-compose stop # 停止 docker-compose restart # 重啟 docker-compose ps # 查看狀態(tài) docker-compose down # 銷毀容器 docker-compose down -v # 銷毀容器+數(shù)據(jù)卷(謹慎執(zhí)行)
訪問 Harbor UI:http://服務(wù)器IP,默認賬號admin,密碼為配置文件中設(shè)置的密碼。
三、harbor.yml 配置參數(shù)深度詳解
配置分為必選參數(shù)和可選參數(shù):
- 必選參數(shù):修改后需重新執(zhí)行
install.sh重裝生效; - 可選參數(shù):首次啟動生效,后續(xù) Web UI 可直接修改。
常用參數(shù)說明
| 參數(shù) | 含義 | 生產(chǎn)建議 |
|---|---|---|
hostname | 訪問域名 / IP | 優(yōu)先使用域名 |
harbor_admin_password | 管理員密碼 | 大小寫 + 數(shù)字 + 特殊符號 |
database.password | 數(shù)據(jù)庫密碼 | 與管理員密碼區(qū)分 |
data_volume | 數(shù)據(jù)持久化目錄 | 獨立磁盤分區(qū) |
jobservice.max_job_workers | 鏡像同步并發(fā)數(shù) | 調(diào)大提升同步效率 |
log.level | 日志級別 | 生產(chǎn)使用 info |
四、Harbor 倉庫 Web UI 使用 + 鏡像推拉實戰(zhàn)
1. Harbor Web UI 基礎(chǔ)操作
- 創(chuàng)建倉庫:登錄 Harbor,新建項目(命名空間),設(shè)置公開 / 私有權(quán)限;
- 倉庫管理:管理鏡像、權(quán)限、用戶、鏡像掃描、鏡像同步;
- 客戶端推拉鏡像:Docker 客戶端上傳、下載鏡像。
2. HTTP 模式客戶端配置(測試環(huán)境)
Docker 默認拒絕非 HTTPS 倉庫,需配置信任:
vim /etc/docker/daemon.json
{"insecure-registries":["http://192.168.xxx.xxx"]}
systemctl daemon-reload systemctl restart docker
3. 鏡像推拉完整命令
# 1. 鏡像打標簽:私服地址/項目名/鏡像名:版本 docker tag nginx:latest 192.168.xxx.xxx/library/nginx:v1 # 2. 登錄Harbor docker login 192.168.xxx.xxx # 3. 推送鏡像 docker push 192.168.xxx.xxx/library/nginx:v1 # 4. 拉取鏡像(公開倉庫無需登錄) docker pull 192.168.xxx.xxx/library/nginx:v1
權(quán)限規(guī)則:推送必須登錄,公開倉庫拉取可匿名。
五、生產(chǎn)必備:Harbor 開啟 HTTPS 加密
1. 開啟 HTTPS 必要性
- Docker 客戶端默認強制 HTTPS,HTTP 模式每臺客戶端需單獨配置,運維繁瑣;
- 鏡像傳輸加密,防止中間人攻擊、鏡像泄露;
- Notary 鏡像簽名組件必須依賴 HTTPS。
2. 配置 HTTPS 步驟
- 停止 Harbor 服務(wù)
docker-compose down -v
- 修改
harbor.yml,開啟 HTTPS 并配置 SSL 證書; - 預(yù)處理配置并重啟
./prepare docker-compose up -d
- 訪問:
https://域名/IP,Docker 客戶端直接登錄,無需配置不安全倉庫。
六、云廠商鏡像倉庫:阿里云 ACR 實操(替代自建 Harbor)
自建 Harbor 需要運維、備份、故障排查,云廠商倉庫開箱即用,適合上云環(huán)境。
1. 進入阿里云 ACR 控制臺

登錄阿里云控制臺,搜索ACR,進入容器鏡像服務(wù)。
2. 選擇實例版本

- 個人版:免費限額,適合學習、測試;
- 企業(yè)版:高可用、安全掃描,適合生產(chǎn)環(huán)境。
3. 創(chuàng)建命名空間(對應(yīng) Harbor 項目)

左側(cè)「倉庫管理」→「命名空間」,創(chuàng)建命名空間,設(shè)置私有 / 公開倉庫類型。
4. ACR 鏡像推拉操作
- 獲取訪問憑證:左側(cè)「訪問憑證」設(shè)置固定密碼;
- 登錄阿里云鏡像倉庫
docker login registry.cn-hangzhou.aliyuncs.com
鏡像打標簽并推送
docker tag nginx:latest registry.cn-hangzhou.aliyuncs.com/hcie/nginx:v1 docker push registry.cn-hangzhou.aliyuncs.com/hcie/nginx:v1
拉取鏡像
docker pull registry.cn-hangzhou.aliyuncs.com/hcie/nginx:v1
七、自建 Harbor vs 阿里云 ACR 對比總結(jié)
| 對比項 | 自建 Harbor | 阿里云 ACR |
|---|---|---|
| 部署方式 | Docker Compose 自建 | 云服務(wù)開箱即用 |
| 證書配置 | 手動申請配置 HTTPS | 自帶 HTTPS,免配置 |
| 運維成本 | 高(備份、升級、排錯) | 極低,阿里云托管 |
| 適用場景 | 內(nèi)網(wǎng)私有化、完全自主可控 | 上云環(huán)境、K8s 集群、公網(wǎng)分發(fā) |
| 推拉速度 | 依賴本地服務(wù)器帶寬 | 阿里云內(nèi)網(wǎng) / 公網(wǎng)高速分發(fā) |
八、總結(jié)
- 內(nèi)網(wǎng)私有化部署:優(yōu)先選擇自建 Harbor,自主可控、內(nèi)網(wǎng)隔離,適配等保合規(guī);
- 上云 / 公網(wǎng)分發(fā):優(yōu)先選擇阿里云 ACR,免運維、高速、無縫對接云產(chǎn)品;
- 鏡像倉庫核心邏輯統(tǒng)一:命名空間隔離、登錄認證、鏡像打標簽、推拉鏡像,兩種倉庫學習成本極低;
- Harbor 支持鏡像同步、漏洞掃描、LDAP 集成,滿足企業(yè)級安全與權(quán)限管控需求。
到此這篇關(guān)于Docker 企業(yè)級私有倉庫 Harbor 完整部署實戰(zhàn)指南的文章就介紹到這了,更多相關(guān)docker私有倉庫 Harbor內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker 搭建基于prometheus的監(jiān)控體系步驟實現(xiàn)
本文主要介紹了docker 搭建基于prometheus的監(jiān)控體系步驟實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-05-05
如何使用docker創(chuàng)建minio鏡像并上傳文件并提供demo
這篇文章主要介紹了使用docker創(chuàng)建minio鏡像并上傳文件,提供demo,minio還是很方便的,從部署到使用,都可以非??焖俚拇罱?而且比較穩(wěn)定,需要的朋友可以參考下2023-09-09
低版本Docker升級高版本Docker的詳細教程及成功避坑
如果我們使用docker來管理容器,那么保持docker引擎的更新將會是十分重要的,下面這篇文章主要給大家介紹了關(guān)于低版本Docker升級高版本Docker的詳細教程及成功避坑,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-05-05
淺談docker學習之docker數(shù)據(jù)卷(volume)
這篇文章主要介紹了淺談docker學習之docker數(shù)據(jù)卷(volume),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12

