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

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

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

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

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

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

