一、为什么很多团队会选择 Harbor

Harbor 是当前企业私有镜像仓库里非常主流的一套方案,原因通常包括:

  • 支持私有化部署
  • 项目隔离和权限控制比较完整
  • 镜像复制、清理、配额等治理能力比较强
  • 与容器平台和 CI/CD 工具链结合比较方便

相关地址:

Harbor 官方站点:https://goharbor.io/
Harbor 发布页:https://github.com/goharbor/harbor/releases
Docker Compose 发布页:https://github.com/docker/compose/releases

二、搭 Harbor 前为什么要先准备 Docker

Harbor 本身依赖容器运行,因此安装前必须先把 Docker 环境准备好。

2.1 Rocky Linux 9.4 安装 Docker

典型流程包括:

  • 替换系统源
  • 安装常用工具
  • 添加 Docker CE 仓库
  • 安装并启动 Docker
  • 配置镜像加速器

这部分命令与常规 Docker 安装流程一致,重点在于保证 Harbor 节点本身的 Docker 环境稳定可用。

2.2 Ubuntu 24.04 安装 Docker

Ubuntu 上同样需要完成:

  • 配置 APT 镜像源
  • 安装基础工具
  • 添加 Docker 仓库
  • 安装 Docker
  • 配置镜像加速器

如果环境里已经有可用的 Docker,则可以直接进入 Harbor 安装阶段。

三、Docker Compose 还需不需要单独安装

原始笔记特别提到一个实用结论:如果安装的是新版 Docker,通常已经内置了 Compose 能力,不一定还需要单独安装 docker-compose

但如果你的环境确实需要独立二进制方式安装,也可以从发布页下载:

Docker Compose 下载页

典型安装方式:

mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose -v

四、Harbor 离线安装包怎么处理

Harbor 常见做法是使用离线安装包。

4.1 下载并上传安装包

从 Harbor 发布页下载离线安装包,例如:

harbor-offline-installer-v2.12.2.tgz

然后上传到目标主机的 /opt 目录。

Harbor 下载页

4.2 解压并加载 Harbor 镜像

cd /opt
tar xf harbor-offline-installer-v2.12.2.tgz
cd harbor
docker load -i harbor.v2.12.2.tar.gz

这一步完成后,Harbor 所需的运行镜像就已经进入本地 Docker 环境。

五、harbor.yml 是安装阶段最关键的配置文件

Harbor 安装前最重要的动作就是复制模板并修改配置:

cp harbor.yml.tmpl harbor.yml
vim harbor.yml

原始示例中最关键的几个配置项包括:

  • hostname:Harbor 访问地址
  • https:证书相关配置
  • data_volume:Harbor 数据目录
  • harbor_admin_password:管理员密码

如果是学习环境且没有配置正式证书,可以先关闭 HTTPS 相关段,并把数据目录调整为例如:

/data/harbor

同时建议重点理解这几个配置项含义:

  • hostname 决定客户端如何访问 Harbor
  • https 决定是否启用证书访问
  • data_volume 决定镜像和数据的落盘位置

六、如何正式执行 Harbor 安装

准备好配置后,先创建数据目录并执行预配置:

mkdir -p /data/harbor
./prepare

然后执行安装:

./install.sh

只要输出中出现 Harbor 安装成功的提示,就说明核心组件已经启动完成。

安装完成后,浏览器直接访问:

http://10.0.0.13

就可以用默认管理员账号登录。

安装成功界面示意:

Harbor 登录页

七、为什么没配证书时还要改 Docker 客户端

如果 Harbor 没有配置受信任的 HTTPS 证书,而只是使用 HTTP 访问,那么客户端 Docker 默认往往不会信任它。

这时需要在客户端的 /etc/docker/daemon.json 中加入:

{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "insecure-registries": ["10.0.0.13"],
  "registry-mirrors": ["https://y0araofw.mirror.aliyuncs.com"]
}

然后重载并重启 Docker:

systemctl daemon-reload
systemctl restart docker

否则在登录 Harbor 时,可能会出现客户端强行走 HTTPS、导致连接 443 端口失败的报错。

八、搭建 Harbor 时最值得先确认的几个点

结合 Day005 的安装部分,实战里最应该优先确认的通常是:

  • Harbor 节点 Docker 是否可用
  • Compose 能力是否可用
  • hostname 是否写成了真实可访问地址
  • 是否已经决定使用 HTTP 学习模式还是 HTTPS 正式模式
  • 客户端是否已经配置 insecure-registries
  • 数据目录是否已经提前规划好

只要这几个点都处理对了,Harbor 的基础安装通常会比较顺利。接下来再做项目、用户、策略、复制和清理治理,整个私有仓库体系就能逐步完善起来。