1. 准备 Harbor 主机

主机名IP 地址
harbor10.0.0.180

2. 准备环境

在安装 Harbor 之前,主机必须满足以下条件:

  • 已安装 Docker 环境
  • 已安装 Docker Compose 环境

若未安装,可参考作者其他文章进行安装。


3. 官网下载 Harbor 安装包

下载地址:
https://github.com/goharbor/harbor/releases

选择最新的稳定版即可。

建议选择离线安装版本
harbor-offline-installer-v2.13.2.tgz

右键复制链接地址,使用 wgetcurl 下载。


4. 解压 Harbor 安装包

将安装包解压到指定目录:

[root@harbor: ~]# tar xf harbor-offline-installer-v2.13.2.tgz -C /
[root@harbor: ~]# cd /harbor/
[root@harbor: /harbor]# ls -l

输出示例:

total 659256
-rw-r--r-- 1 root root      3646 Jul 31  2025 common.sh
-rw-r--r-- 1 root root 675032342 Jul 31  2025 harbor.v2.13.2.tar.gz
-rw-r--r-- 1 root root     14688 Jul 31  2025 harbor.yml.tmpl
-rwxr-xr-x 1 root root      1975 Jul 31  2025 install.sh
-rw-r--r-- 1 root root     11347 Jul 31  2025 LICENSE
-rwxr-xr-x 1 root root      2211 Jul 31  2025 prepare

5. 修改配置文件

复制一份配置文件并去掉 .tmpl 后缀:

[root@harbor:~]# cp /harbor/harbor.yml.tmpl /harbor/harbor.yml

编辑配置文件:

[root@harbor:~]# vim /harbor/harbor.yml

以下是常用配置项说明(可根据实际需求修改):

# Harbor 外部访问地址(不能为 localhost 或 127.0.0.1)
hostname: harbor.cn

# HTTP 配置
http:
  port: 80

# HTTPS 配置(推荐)
https:
  port: 443
  certificate: /harbor/certs/harbor.crt
  private_key: /harbor/certs/harbor.key

# 管理员初始密码
harbor_admin_password: 123456

# 数据库密码
database:
  password: root123

# 数据存储目录
data_volume: /data

# 日志配置
log:
  level: info
  local:
    rotate_count: 50
    rotate_size: 200M
    location: /var/log/harbor

其他配置项(如 Trivy、Jobservice、缓存等)可根据需要调整。


6. 生成 SSL 证书

注意:这里我自定义域名harbor.cn,如果你的域名不一致,注意生成证书的时候修改

创建证书目录:

[root@harbor:~]# mkdir -p /harbor/certs
[root@harbor:~]# cd /harbor/certs/

生成 CA 根证书

# 生成 CA 私钥
openssl genrsa -out ca.key 2048

# 生成 CA 公钥
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt \
  -subj "/C=CN/ST=Beijing/L=Beijing/O=MyCompany/OU=IT/CN=MyRootCA"

生成 Harbor 证书

# 生成 Harbor 私钥
openssl genrsa -out harbor.key 2048

# 生成证书请求文件
openssl req -new -key harbor.key -out harbor.csr \
  -subj "/C=CN/ST=Beijing/L=Beijing/O=MyCompany/OU=IT/CN=harbor.cn"

# 生成 Harbor 公钥
openssl x509 -req -in harbor.csr -CA ca.crt -CAkey ca.key -CAcreateserial \
  -out harbor.crt -days 3650 -sha256 \
  -extensions san -extfile <(printf "[san]\nsubjectAltName=DNS:harbor.cn,DNS:harbor,DNS:localhost,IP:127.0.0.1,IP:10.0.0.180")

查看生成的证书

[root@harbor:/certs]# ls -l

输出示例:

total 24
-rw-r--r-- 1 root root 1334 Sep 11 16:34 ca.crt
-rw------- 1 root root 1704 Sep 11 16:33 ca.key
-rw-r--r-- 1 root root 1399 Sep 11 16:46 harbor.crt
-rw-r--r-- 1 root root 1013 Sep 11 16:37 harbor.csr
-rw------- 1 root root 1704 Sep 11 16:35 harbor.key

7. 开始安装

# 回到安装目录
[root@harbor:/certs]# cd /harbor/

# 执行安装脚本
[root@harbor:/harbor]# ./install.sh

安装完成后,Harbor 服务会自动启动。


8. 浏览器访问

访问地址:
https://10.0.0.180

登录信息:

  • 用户名:admin
  • 密码:123456


9. 配置本地 Docker 信任 Harbor 仓库

为了让本地 Docker 信任 Harbor 的自签名证书,执行以下步骤:

# 创建 Docker 信任目录
[root@harbor harbor]# mkdir -p /etc/docker/certs.d/harbor.cn/

# 复制 CA 证书到 Docker 信任目录
[root@harbor harbor]# cp /harbor/certs/ca.crt /etc/docker/certs.d/harbor.cn/

# 将 CA 证书添加到系统信任证书(红帽/CentOS)
[root@harbor harbor]# cp /harbor/certs/ca.crt /etc/pki/ca-trust/source/anchors/harbor-ca.crt

# 更新系统信任证书
[root@harbor harbor]# update-ca-certificates

# 重启 Docker
[root@harbor harbor]# systemctl restart docker.service

# 重启 Harbor
[root@harbor harbor]# docker-compose down && docker-compose up -d

如果是 Ubuntu 系统,系统证书目录为:/usr/local/share/ca-certificates/


10. 测试推送镜像

# 拉取测试镜像
[root@harbor harbor]# docker pull nginx:latest

# 打标签
[root@harbor harbor]# docker tag nginx:latest harbor.cn/library/nginx:latest

# 添加本地 hosts 解析
[root@harbor harbor]# echo "10.0.0.180 harbor.cn" >> /etc/hosts

# 登录 Harbor
[root@harbor harbor]# docker login -u admin -p 123456 harbor.cn

# 推送镜像
[root@harbor harbor]# docker push harbor.cn/library/nginx:latest

11. 其他服务器 Docker 连接 Harbor 仓库

如果其他服务器也需要访问该私有 Harbor 仓库,请按以下步骤配置:

11.1 配置 hosts 解析

在需要访问 Harbor 的服务器上添加:

echo "10.0.0.180 harbor.cn" >> /etc/hosts

11.2 添加 Harbor 证书信任

将 Harbor 主机的 CA 证书 ca.crt 复制到当前服务器,并添加到系统信任:

# 创建 Docker 信任目录
mkdir -p /etc/docker/certs.d/harbor.cn/

# 拉取证书
scp 10.0.0.180:/harbor/certs/ca.crt /tmp/

# 复制 CA 证书(假设证书已上传到 /tmp)
cp /tmp/ca.crt /etc/docker/certs.d/harbor.cn/

# 添加到系统信任(红帽/CentOS)
cp /tmp/ca.crt /etc/pki/ca-trust/source/anchors/harbor-ca.crt
update-ca-certificates

# 重启 Docker
systemctl restart docker

11.3 登录并拉取镜像

# 登录
docker login -u admin -p 123456 harbor.cn

# 拉取镜像
docker pull harbor.cn/library/nginx:latest

如果 Harbor 使用自签名证书,必须在每台需要访问的服务器上重复上述证书信任步骤,否则 Docker 会报 x509: certificate signed by unknown authority 错误。


如果有帮助,欢迎分享或收藏本博客。

更多推荐