当前位置: 首页 > news >正文

【服务器部署】CentOS 7/8 离线部署 Harbor v2.10.3 超详细攻略

一、背景

很多小伙伴在内网或测试环境部署 Harbor 时,都会选择 离线安装包。
最近社区发布了 Harbor v2.10.3,离线安装包文件名是 harbor-offline-installer-v2.10.3.tgz,里面附带了一个巨大的 harbor.v2.10.3.tar.gz。

“这个 harbor.v2.10.3.tar.gz 到底要不要执行 docker load?”

答案是:必须 docker load!
本文把整套流程一次性梳理清楚,照抄即可成功。

二、环境说明

组件版本/要求
OSCentOS 7.9 64bit
Docker≥ 20.10
Docker-Compose≥ 2.20
Harborv2.10.3
CPU/Mem/Disk2C4G/40G

三、准备工作

1. 安装 Docker & Docker-Compose(已装可跳过)

sudo yum update -y
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker# Docker-Compose 二进制
sudo curl -L https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m) \-o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

2. 系统优化(推荐)

# 关闭 SELinux & 防火墙(测试环境)
setenforce 0
sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
systemctl disable --now firewalld# 关闭 swap
swapoff -a && sed -ri '/swap/s/^/#/' /etc/fstab

四、安装 Harbor v2.10.3(离线版)

1. 下载并解压

cd /opt
wget https://github.com/goharbor/harbor/releases/download/v2.10.3/harbor-offline-installer-v2.10.3.tgz
tar zxvf harbor-offline-installer-v2.10.3.tgz
cd harbor

解压后会得到:

harbor/
├── harbor.v2.10.3.tar.gz      # 所有镜像包
├── harbor.yml.tmpl
├── install.sh
├── prepare
└── common.sh

2. 重点!导入镜像

>离线包内镜像必须手动导入,否则 install.sh 会尝试联网拉取,导致失败。
docker load -i harbor.v2.10.3.tar.gz

执行完后可用以下命令验证:

docker images | grep goharbor

预期输出:

goharbor/harbor-exporter        v2.10.3   7aa694114453   14 months ago   107MB
goharbor/redis-photon           v2.10.3   359683ebd59c   14 months ago   165MB
goharbor/trivy-adapter-photon   v2.10.3   6d51017555d9   14 months ago   516MB
goharbor/harbor-registryctl     v2.10.3   96efb27ac641   14 months ago   152MB
goharbor/registry-photon        v2.10.3   f73ad548d874   14 months ago   84.7MB
goharbor/nginx-photon           v2.10.3   0ae16f53f286   14 months ago   154MB
goharbor/harbor-log             v2.10.3   9ee81cca16ce   14 months ago   163MB
goharbor/harbor-jobservice      v2.10.3   053df0842d37   14 months ago   143MB
goharbor/harbor-core            v2.10.3   ed909856be82   14 months ago   171MB
goharbor/harbor-portal          v2.10.3   c8c29cea2ef3   14 months ago   162MB
goharbor/harbor-db              v2.10.3   c623b46fd89d   14 months ago   269MB
goharbor/prepare                v2.10.3   292e199c8873   14 months ago   210MB

3. 配置 harbor.yml

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

最小化示例(HTTP 方式):

hostname: 192.168.1.100        # 写本机 IP 或域名
http:port: 80
harbor_admin_password: Harbor@123
data_volume: /data/harbor

如需 HTTPS,把证书路径填进去即可。
4. 一键安装

# 带漏洞扫描、签名、ChartMuseum(按需)
./install.sh --with-trivy --with-notary --with-chartmuseum

安装完成后,看到:

✔ ----Harbor has been installed and started successfully.----

五、登录验证

浏览器访问:
http://192.168.1.100

用户名:admin
密码:Harbor@123(即 harbor_admin_password)

首次登录后请及时修改密码。

六、常见问题 FAQ

问题解决思路
docker: command not found检查 Docker 是否正确安装并加入 PATH
镜像导入时报 no space left on device清理 /var/lib/docker 或扩容磁盘
浏览器打不开页面检查端口占用、防火墙、SELinux
忘记 admin 密码进入 harbor-db 容器重置,或重装

七、结论

离线安装包必须 docker load -i harbor.v2.10.3.tar.gz
导入镜像后再执行 ./install.sh
其余步骤与在线安装完全一致

八、一键脚本(懒人福利)

把下面脚本保存为 install_harbor_offline.sh,赋权执行即可:

#!/bin/bash
set -eHARBOR_VER=v2.10.3
IP=$(hostname -I | awk '{print $1}')yum update -y && yum install -y wget tar
cd /opt
wget https://github.com/goharbor/harbor/releases/download/${HARBOR_VER}/harbor-offline-installer-${HARBOR_VER}.tgz
tar zxvf harbor-offline-installer-${HARBOR_VER}.tgz
cd harbor
docker load -i harbor.${HARBOR_VER}.tar.gz
cp harbor.yml.tmpl harbor.yml
sed -ri "s/^hostname:.*/hostname: ${IP}/" harbor.yml
./install.sh
echo "Harbor installed successfully! Access at http://${IP}"

九、参考文献

  • Harbor 官方文档:https://goharbor.io/docs/2.10.0/
  • Docker 官方安装指南:https://docs.docker.com/engine/install/centos/
http://www.dtcms.com/a/364021.html

相关文章:

  • docker desktop拉取镜像失败解决方案
  • ArkUI核心功能组件使用
  • pycharm无法添加本地conda解释器/命令行激活conda时出现很多无关内容
  • 【python】python进阶——pip命令
  • 单调栈与单调队列
  • 《从零搭建二叉树体系:从节点定义到子树判断的实战指南(含源码可直接运行)》
  • 利用Base64传输二进制文件并执行的方法(适合没有ssh ftp等传输工具的嵌入式离线场景)
  • TDK InvenSense CH201距离传感器
  • Photoshop用户必看:让你的PSD像JPG一样可预览
  • vim中常见操作及命令
  • 趣说IT职场30:跨团队会议话术合集:优雅反对、不留记录
  • 使用DataLoader加载本地数据
  • Elasticsearch 核心特性与应用指南
  • 【js】Promise.try VS try-catch
  • 研发文档分散在本地和邮件里如何集中管理
  • 面试必避坑:MySQL 自增 ID 用尽问题深度解析与应对策略
  • XML在线格式化 - 加菲工具
  • 双Token实战:从无感刷新到安全防护,完整流程+代码解析
  • 魔域服务器多少钱一个月?魔域服务器配置要求及推荐
  • Vue 3.5 重磅新特性:useTemplateRef 让模板引用更优雅、更高效!
  • 服务器托管需要注意什么事项?
  • 人工智能助力流感疫苗选择:MIT 团队推出 VaxSeer 系统
  • MySQL注意事项与规范
  • 开发AI编程工具的方案分析
  • SPI片选踩坑实录(硬件片选和软件片选)
  • Nacos配置文件攻防思路总结|揭秘Nacos被低估的攻击面|挖洞技巧
  • Python 基础核心概念与实战代码示例(含数据类型、变量、流程控制、数据结构、函数与文件操作)
  • # Shell 文本处理三剑客:awk、sed 与常用小工具详解
  • 如何修改 Docker 默认网段(网络地址池)配置:以使用 10.x.x.x 网段为例
  • 2024 年 AI 产业格局复盘:头部企业竞逐方向与中小玩家生存破局点