当前位置: 代码网 > it编程>游戏开发>ar > 搭建私有仓库Harbor实现过程(亲测无坑)

搭建私有仓库Harbor实现过程(亲测无坑)

2026年04月09日 ar 我要评论
1. 概述harbor 是由 vmware 公司开源的企业级 docker registry 项目,提供了基于角色的访问控制(role based access control)、镜像复制、漏洞扫描等

1. 概述

harbor 是由 vmware 公司开源的企业级 docker registry 项目,提供了基于角色的访问控制(role based access control)、镜像复制、漏洞扫描等企业级功能。

本文将介绍如何搭建 harbor 私有镜像仓库。

1.1 为什么需要私有镜像仓库

  • 提高镜像下载速度
  • 节省网络带宽
  • 确保镜像安全性
  • 便于管理公司内部的容器镜像

2. 环境要求

  • 操作系统: centos 7 或更高版本
  • docker engine: 20.10.0 或更高版本
  • docker compose: 1.18.0 或更高版本

硬件配置:

  • cpu: 最少2核
  • 内存: 最少4gb
  • 硬盘: 最少40gb

3. 安装步骤

3.1 安装 docker

首先配置 docker 的阿里云镜像源:

# 安装必要工具
yum install -y yum-utils device-mapper-persistent-data lvm2

# 添加 docker 阿里云源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安装 docker
yum install -y docker-ce docker-ce-cli containerd.io

# 配置 docker 镜像加速
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<eof
{
  "registry-mirrors": [
    "https://registry.cn-hangzhou.aliyuncs.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com"
  ],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
eof

# 启动 docker
systemctl daemon-reload
systemctl enable docker
systemctl start docker

3.2 安装 docker compose

# 下载 docker compose 二进制文件
# 使用国内镜像下载 docker compose
wget https://mirror.ghproxy.com/https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

# 添加可执行权限
chmod +x /usr/local/bin/docker-compose

# 验证安装
docker-compose --version

# 如果上述方法都不工作,可以尝试使用 yum 安装
# yum install -y docker-compose-plugin
# 然后使用
# docker compose version

安装成功:

3.3 下载并安装 harbor

# 下载 harbor 安装包(如果下载较慢,建议使用国内镜像)
wget https://github.com/goharbor/harbor/releases/download/v2.8.3/harbor-offline-installer-v2.8.3.tgz
# 或使用以下链接:
# wget https://mirrors.aliyun.com/harbor/harbor-offline-installer-v2.8.3.tgz

# 解压安装包
tar xvf harbor-offline-installer-v2.8.3.tgz
cd harbor

# 复制配置文件模板
cp harbor.yml.tmpl harbor.yml

3.4 修改 harbor 配置文件

编辑 harbor.yml 文件:

# 修改 hostname
hostname: lzz.harbor.com  # 改为你的域名或ip地址

# 修改 https 相关配置(使用 https)
https:
  port: 443
  certificate: /data/cert/lzz.harbor.com.crt
  private_key: /data/cert/lzz.harbor.com.key

# 修改管理员密码(建议修改)
harbor_admin_password: harbor12345

# 修改数据存储路径(可选)
data_volume: /data/harbor

# 修改数据库密码(建议修改)
database:
  password: root123

3.5 生成 ssl 证书

启用 https,需要生成 ssl 证书:

# 创建证书目录
mkdir -p /data/cert
cd /data/cert

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

# 生成证书
openssl req -x509 -new -nodes -sha512 -days 3650 \
  -subj "/c=cn/st=beijing/l=beijing/o=example/ou=personal/cn=lzz.harbor.com" \
  -key ca.key \
  -out ca.crt

# 生成服务器证书
openssl genrsa -out lzz.harbor.com.key 4096
openssl req -sha512 -new \
  -subj "/c=cn/st=beijing/l=beijing/o=example/ou=personal/cn=lzz.harbor.com" \
  -key lzz.harbor.com.key \
  -out lzz.harbor.com.csr

# 生成 x509 v3 扩展文件
cat > v3.ext <<-eof
authoritykeyidentifier=keyid,issuer
basicconstraints=ca:false
keyusage = digitalsignature, nonrepudiation, keyencipherment, dataencipherment
extendedkeyusage = serverauth
subjectaltname = @alt_names

[alt_names]
dns.1=lzz.harbor.com
dns.2=harbor
dns.3=hostname
eof

# 使用 v3.ext 文件为域名生成证书
openssl x509 -req -sha512 -days 3650 \
  -extfile v3.ext \
  -ca ca.crt -cakey ca.key -cacreateserial \
  -in lzz.harbor.com.csr \
  -out lzz.harbor.com.crt

3.6 安装 harbor

# 执行安装脚本
./install.sh --with-notary --with-trivy

# 验证安装
docker ps

访问可视化界面

使用 admin/harbor12345 登录

4. 配置使用

4.1 配置 docker 信任 harbor 证书

在需要访问 harbor 的客户端机器上执行:

#在140执行,发送证书到远程主机
scp /data/cert/lzz.harbor.com.crt user@target-machine:/root/
##在其他主机执行
# 创建证书目录
mkdir -p /etc/docker/certs.d/lzz.harbor.com/

# 复制证书
cp ca.crt /etc/docker/certs.d/lzz.harbor.com/

# 重启 docker
systemctl restart docker

4.2 登录 harbor

# 登录 harbor
docker login lzz.harbor.com

# 使用默认账号密码
# 用户名: admin
# 密码: harbor12345 (如果你修改过配置文件中的密码,使用修改后的密码)

登录成功

4.3 推送镜像示例

# 标记镜像
docker tag nginx:latest lzz.harbor.com/library/nginx:v1

# 推送镜像
docker push lzz.harbor.com/library/nginx:v1

# 拉取镜像
docker pull lzz.harbor.com/library/nginx:v1

5. 常见问题

5.1 无法访问 harbor 界面

  • 检查防火墙设置
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

# 或者开放需要的端口
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=4443/tcp
firewall-cmd --reload

5.2 推送镜像失败

  • 检查证书配置
  • 确认 docker 客户端配置了正确的证书
  • 检查存储空间是否足够

5.3 harbor 服务无法启动

检查日志:

docker-compose ps
docker-compose logs

5.4 修改 harbor 配置

如果需要修改 harbor 配置:

# 停止 harbor
docker-compose down

# 修改配置文件 harbor.yml

# 重新配置
./prepare

# 启动 harbor
docker-compose up -d

6. 维护建议

6.1 定期备份

# 备份 harbor 的数据
cp -r /data/harbor /data/harbor_backup_$(date +%y%m%d)

# 备份数据库
docker-compose exec harbor-db mysqldump -u root -p harbor > harbor_db_backup_$(date +%y%m%d).sql

6.2 监控

建议配置以下监控:

  • 系统资源使用情况
  • harbor 服务状态
  • 存储空间使用情况
  • 访问日志

6.3 安全建议

  • 及时更新 harbor 版本
  • 使用强密码
  • 启用 https
  • 配置访问控制策略
  • 定期扫描镜像漏洞

参考资料:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com