【Harbor v2.13.0 详细安装步骤 安装证书启用 HTTPS】

Harbor v2.13.0 详细安装步骤(启用 HTTPS)


1. 环境准备

  • 系统要求:至少 4GB 内存,100GB 磁盘空间。

  • 已安装组件

    • Docker(版本 ≥ 20.10)
    • Docker Compose(版本 ≥ v2.0)
  • 域名映射

    echo "192.168.0.223 harbor.host3" | sudo tee -a /etc/hosts
    

2. 下载并解压 Harbor 离线安装包

github下载地址: Release v2.13.0

# 解压到指定目录(如 /opt/harbor)
sudo tar -xzvf harbor-offline-installer-v2.13.0_6.tgz -C /opt
cd /opt/harbor

3. 生成 SSL 证书(自签名)

步骤 1:创建证书目录

sudo mkdir -p /opt/harbor/certs
cd /opt/harbor/certs

步骤 2:生成 CA 根证书

# 生成 CA 私钥
openssl genrsa -out ca.key 4096# 生成 CA 证书(有效期 10 年)
openssl req -x509 -new -nodes -sha512 -days 3650 \-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.host3" \-key ca.key \-out ca.crt

步骤 3:生成服务器证书

# 生成服务器私钥
openssl genrsa -out harbor.host3.key 4096# 生成证书签名请求(CSR)
openssl req -sha512 -new \-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.host3" \-key harbor.host3.key \-out harbor.host3.csr# 生成证书扩展文件(v3.ext)
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage=digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage=serverAuth
subjectAltName=@alt_names[alt_names]
DNS.1=harbor.host3
EOF# 使用 CA 签发服务器证书
openssl x509 -req -sha512 -days 3650 \-extfile v3.ext \-CA ca.crt -CAkey ca.key -CAcreateserial \-in harbor.host3.csr \-out harbor.host3.crt

步骤 4:配置证书权限

sudo chmod 644 /opt/harbor/certs/*

4. 配置 Harbor

编辑 harbor.yml

sudo cp harbor.yml.tmpl harbor.yml
sudo nano harbor.yml
# 关键配置项:
hostname: harbor.host3          # 域名
http:#port: 80                      # 禁用 HTTP(设为空或注释)
https:port: 443certificate: /opt/harbor/certs/harbor.host3.crtprivate_key: /opt/harbor/certs/harbor.host3.keyharbor_admin_password: Harbor12345  # 管理员密码
database:password: root123                # 数据库密码
data_volume: /data/harbor          # 数据存储路径

5. 安装 Harbor

注意检查端口是否占用

# 查看 80 端口占用情况
sudo lsof -i :443
# 或使用 netstat 命令
netstat -tuln | grep 443
# 运行安装脚本(自动启动服务)
sudo ./install.sh --with-trivy

6. 验证安装

检查服务状态

docker compose ps
# 预期输出所有服务状态为 "running"

访问 Harbor Web 界面

  • 浏览器访问:https://harbor.host3
  • 用户名:admin
  • 密码:Harbor12345

解决浏览器证书警告

# 将 CA 证书导入系统信任库(以 Ubuntu 为例)
sudo cp /opt/harbor/certs/ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

7. 防火墙配置(如需)

# 开放 443 端口
sudo ufw allow 443/tcp
sudo ufw reload

常见问题解决

1. 常见问题

  • ** 证书不信任错误**

    • 现象x509: certificate signed by unknown authority

    • 解决:确保客户端已正确导入 Harbor 的 ca.crt

    • #Windows 系统
      1.从 Harbor 服务器获取 /opt/harbor/certs/ca.crt 文件,发送到 Windows 客户端
      2.打开证书管理器 win+R    certmgr.msc
      3.导航至 ‌受信任的根证书颁发机构 → 证书‌,右键选择 ‌所有任务 → 导入‌,选择 ca.crt 文件完成导入
      #Ubuntu/Debian# 1复制证书到系统目录sudo cp ca.crt /usr/local/share/ca-certificates/harbor-ca.crt  # 2更新证书库sudo update-ca-certificates  # 3重启 Docker(若需通过 Docker 访问 Harbor)sudo systemctl restart docker  
      #CentOS/RedHat# 1复制证书到系统目录sudo cp ca.crt /etc/pki/ca-trust/source/anchors/  # 2更新证书库sudo update-ca-trust  # 3重启 Dockersudo systemctl restart docker
      #macOS 系统导入 CA 证书
      #‌1钥匙串访问工具‌#双击 ca.crt 文件,选择 ‌系统‌ 钥匙串,点击 ‌添加‌。#右键证书 → ‌显示简介 → 信任‌,设置为 ‌始终信任‌。
      #‌2终端验证‌# 检查证书是否生效openssl s_client -connect harbor.host3:443 -showcerts  
      
  • DNS 解析失败

    • 现象Could not resolve host: harbor.host3

    • 解决:检查客户端主机的 /etc/hosts 或 DNS 服务器配置。

    • echo "192.168.0.223 harbor.host3" | sudo tee -a /etc/hosts
      
  • IP 访问证书警告

    • 现象:访问 https://192.168.0.223 提示证书无效。

    • 解决:证书必须包含 IP SAN(即 alt_names 中添加 IP.1 = 192.168.0.223)。

    • 现象:浏览器提示 “不安全连接”。

    • 解决:将 ca.crt 导入浏览器或系统信任库。

2. Harbor 服务未启动

  • 检查日志

    tail -f /var/log/harbor/*.log
    
  • 重新部署

    docker compose down -v
    sudo ./install.sh
    

3. Docker 客户端信任自签名证书

# 在 Docker 客户端机器操作
sudo mkdir -p /etc/docker/certs.d/harbor.host3
sudo scp root@harbor.host3:/opt/harbor/certs/ca.crt /etc/docker/certs.d/harbor.host3/
sudo systemctl restart docker
# 在 Harbor 服务器检查防火墙规则
sudo ufw allow 443/tcp
sudo ufw reload

4.Docker 客户端推送镜像

# 登录 Harbor
docker login harbor.host3 -u admin -p Harbor12345# 推送测试镜像
docker pull nginx:latest
docker tag nginx:latest harbor.host3/library/nginx:latest
docker push harbor.host3/library/nginx:latest

Harbor 核心功能与使用指南


一、Harbor 与传统 Docker Registry 的核心优势

  1. 企业级功能支持
    • 基于角色的访问控制(RBAC):支持项目级别的权限管理(如管理员、开发者、访客角色),可精细控制用户对镜像的读写权限。
    • 镜像复制与同步:支持跨 Harbor 实例的镜像自动同步,适用于混合云或多数据中心场景。
    • 漏洞扫描与安全审计:集成 Trivy 等工具自动扫描镜像漏洞,并记录所有操作日志用于审计。
    • LDAP/AD 集成:可直接对接企业已有的 LDAP/AD 系统,统一用户认证。
  2. 易用性与扩展性
    • 图形化界面(Web UI):提供直观的镜像管理、项目配置和用户权限设置界面。
    • RESTful API:支持自动化集成到 CI/CD 流程中,例如通过 API 创建项目或管理镜像。
    • 多存储后端支持:支持本地存储、S3、Ceph 等存储方案,适应不同规模的部署需求。
  3. 与 Kubernetes 生态的深度集成
    Harbor 可无缝对接 Kubernetes,作为私有镜像仓库,支持 Helm Chart 存储(需启用 ChartMuseum)。

二、Harbor 的核心使用场景

  1. 企业内部镜像管理
    • 统一存储企业内部开发的 Docker 镜像,避免依赖公共仓库。
    • 通过项目隔离不同团队的镜像资源,例如 project-frontendproject-backend
  2. 混合云镜像分发
    • 在多个 Harbor 实例间配置镜像复制策略,实现跨云或跨地域的镜像同步。
  3. 安全合规与审计
    • 扫描生产环境镜像的漏洞,记录操作日志以满足合规要求。

三、Harbor 镜像推送与拉取操作

1. 推送镜像到 Harbor

  • 步骤 1:登录 Harbor

    docker login harbor.host3 -u admin -p Harbor12345
    

    注意:若使用自签名证书,需将 CA 证书放入 /etc/docker/certs.d/harbor.host3

  • 步骤 2:打标签
    镜像名称需包含 Harbor 地址和项目名称:

    docker tag nginx:latest harbor.host3/myproject/nginx:v1
    
  • 步骤 3:推送镜像

    docker push harbor.host3/myproject/nginx:v1
    

2. 从 Harbor 拉取镜像

docker pull harbor.host3/myproject/nginx:v1

3. 镜像管理

  • Web UI 操作:通过浏览器访问 https://harbor.host3,可在项目中查看、删除镜像或配置复制策略。

  • API 操作:使用 RESTful API 自动化管理,例如列出所有镜像:

    curl -X GET "https://harbor.host3/api/v2.0/projects/myproject/repositories" -H "Authorization: Bearer <TOKEN>"
    

四、Harbor 与其他工具对比

工具优势局限性
Docker Hub公共镜像丰富,适合个人开发者缺乏企业级功能,安全性低
Nexus 3支持多种仓库类型(Maven、Docker)Docker 管理功能较 Harbor 弱
Harbor企业级安全、镜像复制、漏洞扫描部署复杂度较高

五、Harbor 维护与管理

  1. 日志与监控
    • 日志收集:Harbor 日志默认存储在 /var/log/harbor,可通过 ELK 或 Prometheus 集成实现集中监控。
    • 服务状态检查:使用 docker-compose ps 查看容器运行状态。
  2. 备份与恢复
    • 数据备份:定期备份 Harbor 数据库 (harbor-db) 和存储卷 (/data/harbor)。
    • 配置文件备份:保存 harbor.yml 和证书文件,便于快速恢复。
  3. 升级与扩展
    • 版本升级:下载新版本安装包,运行 ./prepare./install.sh,注意迁移旧数据。
    • 高可用部署:通过 Redis 集群和 Ceph 存储实现 Harbor 组件的高可用。
  4. 安全维护
    • 定期更新证书:自签名证书需每年更新,避免服务中断。
    • 漏洞扫描策略:配置定时扫描任务,拦截高风险镜像。

六、常见问题解决

  1. 拉取镜像超时
    • 检查网络:确保防火墙开放 443 端口(HTTPS)或 80 端口(HTTP)。
  2. Web UI 无法访问
    • 服务状态:运行 docker-compose logs 查看 Nginx 或 Core 服务日志。

七、总结

Harbor 是企业级容器镜像管理的首选工具,其核心价值在于 安全性可扩展性易用性。通过合理配置镜像推送、权限管理和存储后端,可大幅提升 DevOps 流程的效率。维护时需重点关注日志监控、备份策略和高可用部署,确保服务稳定

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/82002.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

以pytest_addoption 为例,讲解pytest框架中钩子函数的应用

钩子函数&#xff08;Hook Function&#xff09;的概念 钩子函数&#xff08;Hook Function&#xff09;是软件框架中预定义的回调接口&#xff0c;允许开发者在程序执行的特定阶段插入自定义逻辑&#xff0c;以扩展或修改框架的默认行为。在 pytest 中&#xff0c;钩子函数覆…

合并两个有序链表 - 简单

************* C topic: 21. 合并两个有序链表 - 力扣&#xff08;LeetCode&#xff09; ************* Give the topic an inspection. Hi, guys, how is your holiday break? I went to 黄山 in the past few days. The mount Huang is really beautiful. 天都峰 is real…

13.Spring boot中使用Actuator 监控

13.Spring boot中使用Actuator 监控 Spring Boot Actuator 是 Spring Boot 提供的一个强大的监控和管理工具&#xff0c;它通过暴露各种端点&#xff08;Endpoints&#xff09;来提供应用程序的运行时信息。这些端点可以帮助开发者和管理员监控应用程序的健康状况、性能指标、…

Python+Scrapy跨境电商爬虫实战:从亚马逊/沃尔玛数据采集到反爬攻克(附Pangolin API高效方案)

从零实战到反爬攻克&#xff0c;揭秘跨境数据抓取全流程与Pangolin Scrape API终极方案 在当今数据驱动的跨境电商时代&#xff0c;谁掌握了优质的市场数据&#xff0c;谁就掌握了成功的关键。随着全球电商市场规模持续扩大&#xff08;据Statista最新报告显示&#xff0c;2025…

0基础学习鸿蒙开发-HarmonyOS4

一、初识 1. 开发工具 官网 开发-HarmonyOS NEXT鸿蒙应用开发平台-华为开发者联盟 2. ArkTS 二、TypeScript 基本语法 1.变量声明 2. 条件控制 注意 在TypeScrips中 空字符串数字0、null、undefined 都坡认为是false 其它值则为true if (num) {// num 非空执行 } 3. 循环迭…

深度学习中常用的符号表达式

在论文写作过程中&#xff0c;常常涉及到一些关键的符号的表达&#xff0c;为了更加规范常用的一些符号表达&#xff0c;现将其总结如下&#xff08;该文件会持续性更新&#xff09;&#xff1a; 数字 x x x : 标量 x \mathbf{x} x : 向量 X \mathbf{X} X : 矩阵 X \mathsf{X}…

react naive 网络框架源码解析

本文取 react native 两个区别很大的版本做分析&#xff08;0.76.5、0.53.3&#xff09; 一、0.76.5 版fetch 全流程排查 1、JS 端的实现 随手写一个fetch&#xff0c;点开。 我们这里常用的还是手机端&#xff0c;因此选择 react-native&#xff0c;react-native-windows …

OpenCV 图形API(81)图像与通道拼接函数-----透视变换函数warpPerspective()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 对图像应用透视变换。 函数 warpPerspective 使用指定的矩阵对源图像进行变换&#xff1a; dst ( x , y ) src ( M 11 x M 12 y M 13 M 31 x…

深度学习在油气地震资料反卷积中的应用

深度学习在油气地震资料反卷积中的应用 基本原理 在油气地震勘探中&#xff0c;反卷积(Deconvolution)是一种重要的信号处理技术&#xff0c;用于提高地震资料的分辨率。传统方法(如维纳滤波、预测反卷积等)存在对噪声敏感、假设条件严格等局限。深度学习方法通过数据驱动的方…

Java开发者面试实录:微服务架构与Spring Cloud的应用

面试场景 面试官: 请介绍一下你的基本情况。 程序员: 大家好&#xff0c;我叫张小明&#xff0c;今年27岁&#xff0c;硕士学历&#xff0c;拥有5年的Java后端开发经验。主要负责基于Spring Boot开发企业级应用&#xff0c;以及微服务架构的设计和实现。 面试官: 好的&#…

​Spring + Shiro 整合的核心要点及详细实现说明

在 Spring 项目中集成 Apache Shiro 可以实现轻量级的安全控制&#xff08;认证、授权、会话管理等&#xff09;。以下是 ​Spring Shiro 整合的核心要点及详细实现说明&#xff1a; 一、Spring 与 Shiro 整合的核心组件 ​组件​​作用​ShiroFilterFactoryBean创建 Shiro 过…

网络编程核心技术解析:从Socket基础到实战开发

网络编程核心技术解析&#xff1a;从Socket基础到实战开发 一、Socket编程核心基础 1. 主机字节序与网络字节序&#xff1a;数据传输的统一语言 在计算机系统中&#xff0c;不同架构对多字节数据的存储顺序存在差异&#xff0c;而网络通信需要统一的字节序标准&#xff0c;这…

SQLark可以支持PostgreSQL了,有哪些新功能?

SQLark&#xff08;百灵连接&#xff09;是一款国产的数据库开发和管理工具&#xff0c;用于快速查询、创建和管理不同类型的数据库系统&#xff0c;支持达梦、Oracle 和 MySQL 数据库。 最新发布的 SQLark V3.4 版本新增了对 PostgreSQL 数据库的支持。我试用了一下&#xff…

【全面解析】Poco C++ Libraries 模块详解与使用指南

Poco&#xff08;The Portable Components&#xff09; 是一套现代 C 的跨平台开发库&#xff0c;广泛应用于嵌入式系统、服务端程序、工业控制和 AI 后端服务等领域。其设计理念类似于 Java 的标准库&#xff0c;为 C 提供“标准的非标准功能”。 本篇文章将带你全面了解 Poco…

Vue+tdesign t-input-number 设置长度和显示X号

一、需求 Vuetdesign t-input-number 想要设置input的maxlen和显示X号 二、实现 t-input&#xff0c;可以直接使用maxlength和clearable属性 <t-input v-model"value" clearable maxlength10 placeholder"请输入" clear"onClear" blur&q…

(Go Gin)Gin学习笔记(二):路由配置、基本路由、表单参数、上传单个文件、上传多个文件、浅扒路由原理

1. 路由 gin 框架中采用的路优酷是基于httprouter做的 HttpRouter 是一个高性能的 HTTP 请求路由器&#xff0c;适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用&#xff0c;特别适合需要高性能和简单路由的应用场景。 主要特点 显式匹配&#xff1a;与其他路由…

Linux下的好玩的命令

在 CentOS 下&#xff0c;有许多有趣且实用的 Linux 命令&#xff0c;可以帮助你更好地了解系统、提升效率或进行娱乐。以下是一些好玩的 Linux 命令及其说明&#xff1a; 1. cowsay 和 cowthink 功能&#xff1a;让一只牛&#xff08;或其他动物&#xff09;说出你想说的话。…

OpenharmonyOS+RK3568,【编译烧录】

文章目录 1. 摘要 ✨2. 代码下载 &#x1f4e9;3. 编译 &#x1f5a5;️4. 修改&适配 ✂️4.1 编译框架基本概念4.2 vendor & device 目录4.3 内核编译4.3.1 如何修改、适配自己的开发板&#xff1f; 4.4 修改外设驱动 5. 烧录&验证 &#x1f4cb;参考 1. 摘要 ✨ …

深度学习模型优化:如何让数据科学更智能?

深度学习模型优化:如何让数据科学更智能? 一、引言:为什么优化深度学习模型如此重要? 深度学习的应用已经渗透到数据科学的各个领域,从图像识别到自然语言处理,从推荐系统到金融风控,每一个智能模型都依赖于数据驱动的训练。然而,一个模型的性能不仅仅取决于其架构,…

学习Python的第二天之网络爬虫

30岁程序员学习Python的第二天之网络爬虫的信息提取 BeautifulSoup库 地址&#xff1a;https://beautifulsoup.readthedocs.io/zh-cn/v4.4.0/ 1、BeautifulSoup4安装 在windows系统下通过管理员权限运行cmd窗口 运行pip install beautifulsoup4 测试实例 import requests…