Docker 部署私有镜像仓库 Harbor(附下载步骤)
·
1. 准备 Harbor 主机
| 主机名 | IP 地址 |
|---|---|
| harbor | 10.0.0.180 |
2. 准备环境
在安装 Harbor 之前,主机必须满足以下条件:
- 已安装 Docker 环境
- 已安装 Docker Compose 环境
若未安装,可参考作者其他文章进行安装。
3. 官网下载 Harbor 安装包
下载地址:
https://github.com/goharbor/harbor/releases
选择最新的稳定版即可。

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

右键复制链接地址,使用 wget 或 curl 下载。

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错误。
如果有帮助,欢迎分享或收藏本博客。
更多推荐
所有评论(0)