Docker 企业级私有仓库 Harbor 完整部署实战指南

 更新时间:2026年07月02日 09:14:25   作者:蜀道山老天师  
本文详细解析了自建Harbor与阿里云ACR两种镜像仓库方案,涵盖Harbor架构解析、HTTPS加密配置、镜像推拉实战等内容D适合内网私有化部署与云环境使用,感兴趣的朋友一起看看吧

前言

在容器化运维与云原生架构中,Docker 镜像仓库是核心基础设施,用于统一存储、管理、分发容器镜像。企业主要有两种方案:

  1. 自建私有仓库:部署 Harbor,完全私有化、内网隔离、自主可控;
  2. 云厂商托管仓库:阿里云 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 一键编排:

  1. ui:Web 管理界面核心服务
  2. log:rsyslog 日志收集容器
  3. mysql:数据库容器
  4. nginx:反向代理容器
  5. registry:Docker 镜像存储仓库
  6. adminserver:配置数据管理器
  7. jobservice:任务调度服务
  8. redis:会话存储
  9. 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 种部署方式:

  1. 在线安装:联网拉取镜像,速度慢,适合测试;
  2. 离线安装:无网络可部署,生产首选
  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 配置参数深度详解

配置分为必选参数可选参数

  1. 必选参数:修改后需重新执行install.sh重装生效;
  2. 可选参数:首次启动生效,后续 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 基础操作

  1. 创建仓库:登录 Harbor,新建项目(命名空间),设置公开 / 私有权限;
  2. 仓库管理:管理镜像、权限、用户、镜像扫描、镜像同步;
  3. 客户端推拉镜像: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 必要性

  1. Docker 客户端默认强制 HTTPS,HTTP 模式每台客户端需单独配置,运维繁琐;
  2. 镜像传输加密,防止中间人攻击、镜像泄露;
  3. Notary 镜像签名组件必须依赖 HTTPS。

2. 配置 HTTPS 步骤

  1. 停止 Harbor 服务
docker-compose down -v
  1. 修改harbor.yml,开启 HTTPS 并配置 SSL 证书;
  2. 预处理配置并重启
./prepare
docker-compose up -d
  1. 访问:https://域名/IP,Docker 客户端直接登录,无需配置不安全仓库。

六、云厂商镜像仓库:阿里云 ACR 实操(替代自建 Harbor)

自建 Harbor 需要运维、备份、故障排查,云厂商仓库开箱即用,适合上云环境。

1. 进入阿里云 ACR 控制台

登录阿里云控制台,搜索ACR,进入容器镜像服务

2. 选择实例版本

  • 个人版:免费限额,适合学习、测试;
  • 企业版:高可用、安全扫描,适合生产环境。

3. 创建命名空间(对应 Harbor 项目)

左侧「仓库管理」→「命名空间」,创建命名空间,设置私有 / 公开仓库类型。

4. ACR 镜像推拉操作

  1. 获取访问凭证:左侧「访问凭证」设置固定密码;
  2. 登录阿里云镜像仓库
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 集群、公网分发
推拉速度依赖本地服务器带宽阿里云内网 / 公网高速分发

八、总结

  1. 内网私有化部署:优先选择自建 Harbor,自主可控、内网隔离,适配等保合规;
  2. 上云 / 公网分发:优先选择阿里云 ACR,免运维、高速、无缝对接云产品;
  3. 镜像仓库核心逻辑统一:命名空间隔离、登录认证、镜像打标签、推拉镜像,两种仓库学习成本极低;
  4. Harbor 支持镜像同步、漏洞扫描、LDAP 集成,满足企业级安全与权限管控需求。

到此这篇关于Docker 企业级私有仓库 Harbor 完整部署实战指南的文章就介绍到这了,更多相关docker私有仓库 Harbor内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker 搭建基于prometheus的监控体系步骤实现

    docker 搭建基于prometheus的监控体系步骤实现

    本文主要介绍了docker 搭建基于prometheus的监控体系步骤实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • docker部署gitlab以及修改初始密码方式

    docker部署gitlab以及修改初始密码方式

    这篇文章主要介绍了docker部署gitlab以及修改初始密码方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • 如何使用docker创建minio镜像并上传文件并提供demo

    如何使用docker创建minio镜像并上传文件并提供demo

    这篇文章主要介绍了使用docker创建minio镜像并上传文件,提供demo,minio还是很方便的,从部署到使用,都可以非常快速的搭建,而且比较稳定,需要的朋友可以参考下
    2023-09-09
  • 编写最佳的Dockerfile的方法

    编写最佳的Dockerfile的方法

    本文给大家分享的是如何编写最佳的dockerfile的方法,通过具体实例帮助大家快速掌握编写Dockerfile的技巧
    2017-06-06
  • docker安装tomcat8的实现方法

    docker安装tomcat8的实现方法

    这篇文章主要介绍了docker安装tomcat8的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 低版本Docker升级高版本Docker的详细教程及成功避坑

    低版本Docker升级高版本Docker的详细教程及成功避坑

    如果我们使用docker来管理容器,那么保持docker引擎的更新将会是十分重要的,下面这篇文章主要给大家介绍了关于低版本Docker升级高版本Docker的详细教程及成功避坑,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • Docker容器通过独立IP暴露给局域网的方法

    Docker容器通过独立IP暴露给局域网的方法

    这篇文章主要介绍了Docker容器通过独立IP暴露给局域网的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-04-04
  • 浅谈docker学习之docker数据卷(volume)

    浅谈docker学习之docker数据卷(volume)

    这篇文章主要介绍了浅谈docker学习之docker数据卷(volume),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • 使用Docker部署GPUStack过程

    使用Docker部署GPUStack过程

    GPUStack是一款基于Docker的GPU计算平台,支持异构GPU集群,通过简单的Docker命令即可启动GPUStack服务器和worker,并通过Web界面进行管理和监控
    2026-01-01
  • Docker安装(Ubuntu 64bit)的方法步骤

    Docker安装(Ubuntu 64bit)的方法步骤

    本篇文章主要介绍了 Docker安装 Ubuntu 64bit的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04

最新评论