Docker 企业级私有仓库 Harbor 完整部署实战指南
前言
在容器化运维与云原生架构中,Docker 镜像仓库是核心基础设施,用于统一存储、管理、分发容器镜像。企业主要有两种方案:
- 自建私有仓库:部署 Harbor,完全私有化、内网隔离、自主可控;
- 云厂商托管仓库:阿里云 ACR、华为云 SWR 等,开箱即用、免运维、国内高速分发。
本文完整讲解Harbor 架构解析、离线部署、HTTPS 加密、镜像推拉、阿里云 ACR 实操,对比两种仓库方案,适配 CentOS7、银河麒麟 V10 系统,可直接复刻部署,CSDN 完整实操版。
一、镜像仓库整体架构:自建 Harbor 与云仓库对比
1. 整体架构总览

- 自建 Harbor:部署在内网服务器,用户推送镜像至 Harbor,再同步至各大云厂商镜像仓库,实现多环境统一分发;
- 云厂商 ACR:阿里云托管镜像仓库,无需自建服务,直接在线创建仓库,推拉镜像。
2. Harbor 内部详细架构

Harbor 采用多容器分布式架构,核心组件如下:
- Nginx:反向代理入口,接收浏览器、Docker 客户端、Notary 客户端请求;
- Core Service(核心服务):UI 界面、API 接口、权限认证,控制中枢;
- Registry V2:Docker 原生镜像仓库,存储镜像文件;
- DB(MySQL):存储项目、用户、权限、镜像元数据;
- Log Collector:日志统一收集;
- Admin Service:系统配置管理;
- Replication Job Services:跨 Harbor 实例镜像同步;
- Vulnerability Scanning:镜像漏洞扫描;
- Notary:镜像签名安全组件;
- Redis:存储用户会话 Session;
- AD/LDAP:对接企业域控统一认证。
3. Harbor 核心容器组成
Harbor 由以下容器构成,通过 Docker Compose 一键编排:
ui:Web 管理界面核心服务log:rsyslog 日志收集容器mysql:数据库容器nginx:反向代理容器registry:Docker 镜像存储仓库adminserver:配置数据管理器jobservice:任务调度服务redis:会话存储notary:镜像安全签名组件
硬性版本要求:Docker ≥ 1.10.0,Docker Compose ≥ 1.6.0
二、自建 Harbor 离线部署完整实战
1. 环境准备:安装 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 种部署方式:
- 在线安装:联网拉取镜像,速度慢,适合测试;
- 离线安装:无网络可部署,生产首选;
- OVA 镜像安装:适配 VMware 虚拟化环境。
版本下载:https://github.com/goharbor/harbor/releases
tar zxvf harbor-offline-installer-v2.13.2.tgz cd harbor
目录文件说明:
harbor.yml.tmpl:配置文件模板;install.sh:一键安装脚本;prepare:配置预处理脚本;harbor.v2.13.2.tar.gz:离线镜像包。
3. 修改核心配置文件
cp harbor.yml.tmpl harbor.yml vim harbor.yml
必改核心参数
hostname: 192.168.xxx.xxx # 服务器IP或域名 http: port: 80 # https: # 测试环境注释,生产开启 # port: 443 # certificate: /usr/local/harbor/key/server.pem # private_key: /usr/local/harbor/key/server.key harbor_admin_password: Harbor123456 # 管理员密码 database: password: root123456 # 数据库密码 data_volume: /data/harbor # 数据持久化目录
4. 一键安装并启动 Harbor
# 基础安装 ./install.sh # 开启漏洞扫描组件 # ./install.sh --with-trivy
Harbor 服务管理命令
docker-compose up -d # 后台启动 docker-compose stop # 停止 docker-compose restart # 重启 docker-compose ps # 查看状态 docker-compose down # 销毁容器 docker-compose down -v # 销毁容器+数据卷(谨慎执行)
访问 Harbor UI:http://服务器IP,默认账号admin,密码为配置文件中设置的密码。
三、harbor.yml 配置参数深度详解
配置分为必选参数和可选参数:
- 必选参数:修改后需重新执行
install.sh重装生效; - 可选参数:首次启动生效,后续 Web UI 可直接修改。
常用参数说明
| 参数 | 含义 | 生产建议 |
|---|---|---|
hostname | 访问域名 / IP | 优先使用域名 |
harbor_admin_password | 管理员密码 | 大小写 + 数字 + 特殊符号 |
database.password | 数据库密码 | 与管理员密码区分 |
data_volume | 数据持久化目录 | 独立磁盘分区 |
jobservice.max_job_workers | 镜像同步并发数 | 调大提升同步效率 |
log.level | 日志级别 | 生产使用 info |
四、Harbor 仓库 Web UI 使用 + 镜像推拉实战
1. Harbor Web UI 基础操作
- 创建仓库:登录 Harbor,新建项目(命名空间),设置公开 / 私有权限;
- 仓库管理:管理镜像、权限、用户、镜像扫描、镜像同步;
- 客户端推拉镜像:Docker 客户端上传、下载镜像。
2. HTTP 模式客户端配置(测试环境)
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
权限规则:推送必须登录,公开仓库拉取可匿名。
五、生产必备:Harbor 开启 HTTPS 加密
1. 开启 HTTPS 必要性
- Docker 客户端默认强制 HTTPS,HTTP 模式每台客户端需单独配置,运维繁琐;
- 镜像传输加密,防止中间人攻击、镜像泄露;
- Notary 镜像签名组件必须依赖 HTTPS。
2. 配置 HTTPS 步骤
- 停止 Harbor 服务
docker-compose down -v
- 修改
harbor.yml,开启 HTTPS 并配置 SSL 证书; - 预处理配置并重启
./prepare docker-compose up -d
- 访问:
https://域名/IP,Docker 客户端直接登录,无需配置不安全仓库。
六、云厂商镜像仓库:阿里云 ACR 实操(替代自建 Harbor)
自建 Harbor 需要运维、备份、故障排查,云厂商仓库开箱即用,适合上云环境。
1. 进入阿里云 ACR 控制台

登录阿里云控制台,搜索ACR,进入容器镜像服务。
2. 选择实例版本

- 个人版:免费限额,适合学习、测试;
- 企业版:高可用、安全扫描,适合生产环境。
3. 创建命名空间(对应 Harbor 项目)

左侧「仓库管理」→「命名空间」,创建命名空间,设置私有 / 公开仓库类型。
4. ACR 镜像推拉操作
- 获取访问凭证:左侧「访问凭证」设置固定密码;
- 登录阿里云镜像仓库
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 对比总结
| 对比项 | 自建 Harbor | 阿里云 ACR |
|---|---|---|
| 部署方式 | Docker Compose 自建 | 云服务开箱即用 |
| 证书配置 | 手动申请配置 HTTPS | 自带 HTTPS,免配置 |
| 运维成本 | 高(备份、升级、排错) | 极低,阿里云托管 |
| 适用场景 | 内网私有化、完全自主可控 | 上云环境、K8s 集群、公网分发 |
| 推拉速度 | 依赖本地服务器带宽 | 阿里云内网 / 公网高速分发 |
八、总结
- 内网私有化部署:优先选择自建 Harbor,自主可控、内网隔离,适配等保合规;
- 上云 / 公网分发:优先选择阿里云 ACR,免运维、高速、无缝对接云产品;
- 镜像仓库核心逻辑统一:命名空间隔离、登录认证、镜像打标签、推拉镜像,两种仓库学习成本极低;
- Harbor 支持镜像同步、漏洞扫描、LDAP 集成,满足企业级安全与权限管控需求。
到此这篇关于Docker 企业级私有仓库 Harbor 完整部署实战指南的文章就介绍到这了,更多相关docker私有仓库 Harbor内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
docker 搭建基于prometheus的监控体系步骤实现
本文主要介绍了docker 搭建基于prometheus的监控体系步骤实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-05-05
如何使用docker创建minio镜像并上传文件并提供demo
这篇文章主要介绍了使用docker创建minio镜像并上传文件,提供demo,minio还是很方便的,从部署到使用,都可以非常快速的搭建,而且比较稳定,需要的朋友可以参考下2023-09-09
低版本Docker升级高版本Docker的详细教程及成功避坑
如果我们使用docker来管理容器,那么保持docker引擎的更新将会是十分重要的,下面这篇文章主要给大家介绍了关于低版本Docker升级高版本Docker的详细教程及成功避坑,文中通过图文介绍的非常详细,需要的朋友可以参考下2023-05-05


最新评论