RockyLinux 9.5 部署 Docker Harbor

Harbor 是一个开源镜像仓库,通过策略和基于角色的访问控制来保护镜像,确保镜像经过扫描且没有漏洞,并将镜像签名为可信镜像。Harbor 是一个 CNCF(云原生计算基金会:Cloud Native Computing Foundation)毕业项目,提供合规性、性能和互操作性,帮助您在 Kubernetes 和 Docker 等云原生计算平台上一致且安全地管理镜像。

一、Harbor 安装先决条件

1、硬件 官网给出的部署 Harbor 的最小和推荐硬件配置
资源最低推荐
CPU2 个 CPU4 个 CPU
内存4 GB8 GB
硬盘40 GB160 GB
2、软件 下表列出了目标主机上必须安装的软件版本
软件版本描述
Docker 引擎版本 > 20.10Docker 引擎安装
Docker ComposeDocker Compose > 2.3Docker Compose 是 Docker 引擎的一部分
OpenSSL建议使用最新版本用于生成 Harbor 的证书和密钥
3、网络端口 Harbor 需要在目标主机上打开以下端口。
端口协议描述
443HTTPSHarbor 门户和核心 API 接受此端口上的 HTTPS 请求。您可以在配置文件中更改此端口。
80HTTPHarbor 门户和核心 API 接受此端口上的 HTTP 请求。您可以在配置文件中更改此端口。

二、下载 Harbor 安装程序

1、Harbor 的官方发布版本托管在 GitHub
2、在对应的版本中,你可以找到以下文件:
  • harbor-offline-installer-<version>.tgz(离线安装包): 如果您要部署 Harbor 的主机无法连接到互联网,请使用离线安装包。离线安装包包含预构建的镜像,因此它比在线安装包更大。
  • harbor-online-installer-<version>.tgz(在线安装包):在线安装包从 Docker Hub 下载 Harbor 镜像。因此,安装包体积非常小。
3、在线和离线安装包的安装过程几乎相同。如果无法访问 github,这里有离线安装包:harbor-offline-installer-v2.12.4.tgz,链接: https://pan.baidu.com/s/1Nha4oNY1GvyH0Pcy4q4Qpw?pwd=wxdw 提取码: wxdw
4、Harbor 中文参考地址

三、安装 Docker

1、安装 docker
# 添加阿里云docker-ce仓库
dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 列出当前系统中所有可安装的 docker-ce 版本,并按照版本号从高到低进行排序,同时显示重复的版本。
dnf list docker-ce --showduplicates | sort -r
# 安装最新版本 docker-ce,也可以指定版本安装(dnf install -y docker-ce-3:28.1.1-1.el9)
dnf install -y docker-ce
# 启用Docker Cgroup用于限制进程的资源使用量,如CPU、内存资源
# 创建目录,存放 docker 的配置文件
mkdir -p /etc/docker
# 创建并写入 /etc/docker/daemon.json 文件,设置 Docker 使用 systemd 作为 Cgroup 驱动
# registry-mirrors 配置:docker 镜像加速器的地址列表。
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "registry-mirrors": [
    "https://docker.m.daocloud.io"
  ]
}
EOF
# 设置 docker 开机自启,并启动 docker
systemctl enable docker --now
2、解压 harbor 离线安装包
# 根目录下创建 /data 目录
mkdir -p /data
# 解压缩 harbor-offline-installer-v2.12.4.tgz 内容到 /data 目录下
tar -zxvf harbor-offline-installer-v2.12.4.tgz -C /data

# 进入 /data/harbor/
cd /data/harbor/
# 将当前目录下的 harbor.yml.tmpl 文件复制一份到当前目录下
cp harbor.yml.tmpl harbor.yml

四、配置 Harbor 的 HTTPS 访问

默认情况下,Harbor 不附带证书。可以在没有安全性的情况下部署 Harbor,以便可以通过 HTTP 连接到它。在生产环境中,推荐始终使用 HTTPS。要配置 HTTPS,您必须创建 SSL 证书。您可以使用由受信任的第三方 CA 签名的证书,也可以使用自签名证书。

(1)本文使用的是阿里云提供的免费 SSL 证书,一个自然年内可以领取一次,数量为20,有效期三个月。
(2)需要购买一个域名,直接在阿里云购买就可以,100块之内
(3)如果只是本地部署测试,也可以用下面自签名证书

(一) 阿里云 CA 证书

1、创建证书

在这里插入图片描述

2、证书申请

在这里插入图片描述

3、三步验证 DNS

在这里插入图片描述

4、将域名解析到 IP 地址

在这里插入图片描述

5、下载证书

在这里插入图片描述

(二) 自签名证书

# 下面的 harbor.zhixu 可自行修改
# 创建目录并进入
mkdir -p /data/cert
cd /data/cert
# 生成 CA 私钥
openssl genrsa -out ca.key 4096

# 使用 CA 私钥生成自签名证书
openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.zhixu" \
 -key ca.key \
 -out ca.crt

# 生成服务端私钥
openssl genrsa -out harbor.zhixu.com.key 4096

# 使用服务端私钥生成 CSR
openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.zhixu" \
    -key harbor.zhixu.com.key \
    -out harbor.zhixu.com.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.zhixu.com
DNS.2=harbor.zhixu
DNS.3=redis
IP.1=192.168.31.116
EOF

# 使用 CA 签发服务器证书
openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in harbor.zhixu.com.csr \
    -out harbor.zhixu.com.crt

# 创建目录,向  Docker 提供证书
# 如果将默认的 nginx 端口 443 映射到不同的端口,比如8443,请创建文件夹harbor.zhixu.com:8443
mkdir -p /etc/docker/certs.d/harbor.zhixu.com:443
# 将 harbor.zhixu.com.crt 转换为 harbor.zhixu.com.cert,供 Docker 使用
openssl x509 -inform PEM -in harbor.zhixu.com.crt -out harbor.zhixu.com.cert
# 将服务器证书、密钥和 CA 文件复制到 Harbor 主机上的 Docker 证书文件夹中
cp harbor.zhixu.com.cert /etc/docker/certs.d/harbor.zhixu.com:443/
cp harbor.zhixu.com.key /etc/docker/certs.d/harbor.zhixu.com:443/
cp ca.crt /etc/docker/certs.d/harbor.zhixu.com:443/

#  自签名证书需要配置域名本地解析
echo -e "192.168.31.116 harbor.zhixu.com" | sudo tee -a /etc/hosts
# 为了使自签名证书能够正常工作,您需要确保使用该证书的客户端能够正确解析到Harbor服务的地址。这意味着您应该在计划访问Harbor仓库的每台客户端机器上配置域名的本地解析。
# Windows系统,编辑位于C:\Windows\System32\drivers\etc\hosts,对于Linux或MacOS系统,编辑位于/etc/hosts的文件

# 重启 Docker
systemctl restart docker

五、配置 Harbor 组件之间的内部 TLS 通信

默认情况下,Harbor 组件(harbor-core、 harbor-jobservice、proxy、harbor-portal、registry、registryctl、trivy_adapter、chartmuseum)之间的内部通信使用 HTTP 协议,这对于某些生产环境可能不够安全。自 Harbor v2.0 起,TLS 可以用于此内部网络。在生产环境中,始终建议使用 HTTPS。
此功能通过 harbor.yml 文件中的 internal_tls 引入。要启用内部 TLS,请将 enabled 设置为 true,并将 dir 值设置为包含内部证书文件的目录路径。

# 所有证书都可以通过 prepare 工具自动生成。
# 不加 -d 3650 默认有效期一年,加了之后十年
# 里面的版本号是v2.12.4,版本号如果不一致请自行修改
docker run -v /:/hostfs goharbor/prepare:v2.12.4 gencert -p /data/cert/tls/internal -d 3650

六、配置 Harbor YML 文件

1、必须设置的参数
# Harbor 的目标主机上的 IP 地址、主机名 或 域名
hostname: 192.168.31.116

# 使用 HTTPS 访问 Harbor 门户和令牌/通知服务。始终在生产环境和没有隔离的环境中使用 HTTPS。
https:
  # HTTPS 的端口号,用于 Harbor 门户和 Docker 命令。默认值为 443,但是一定要与 external_url 参数的端口号一致
  port: 443
  # SSL 证书的路径
  certificate: /data/cert/harbor.zhixu.com.cert
  # SSL 密钥的路径
  private_key: /data/cert/harbor.zhixu.com.key
  # 是否启用强 SSL/TLS 加密套件,建议将此选项设置为 true
  strong_ssl_ciphers: true

# 使用 HTTPS 在 Harbor 组件之间通信
internal_tls:
  # 将此标志设置为 true 表示内部 tls 已启用
  enabled: true
  # 包含内部证书和密钥的目录的路径
  dir: /data/cert/tls/internal/

# 启用此选项以使用外部代理。启用后,将不再使用主机名
external_url: https://harbor.zhixu.com:443

# Harbor 系统管理员设置初始密码
# 默认用户名和密码为 admin 和 Harbor12345
# 记住在启动 Harbor 后从 UI 更改管理员密码
harbor_admin_password: Harbor12345

# 使用本地 PostgreSQL 数据库。您可以选择配置外部数据库,在这种情况下,您可以停用此选项。
database:
  # 设置本地数据库的 root 密码。您必须为生产部署更改此密码。
  password: root123
  # 空闲连接池中的最大连接数。如果它 <=0,则不保留任何空闲连接。
  max_idle_conns: 100
  # 到数据库的最大打开连接数。如果它 <= 0,则对打开连接数没有限制。
  max_open_conns: 900
  # 连接可以重复使用的最长时间。如果它 <= 0,则连接不会因为连接的年龄而关闭。
  conn_max_lifetime: 5m
  # 连接可以空闲的最长时间。如果它 <= 0,则连接不会因为连接的空闲时间而关闭。
  conn_max_idle_time: 0

# 在目标主机上存储 Harbor 数据的位置。即使 Harbor 的容器被删除和/或重新创建,这些数据也会保持不变。路径需要你手动创建。
data_volume: /data/harbor-storage
2、配置 Trivy(Harbor 的漏洞扫描组件) 扫描器(可选)
trivy:
  # 生产环境建议仅显示有官方修复方案的漏洞
  ignore_unfixed: true

  # 生产环境必须启用跳过自动更新(需手动维护漏洞数据库)
  skip_update: true

  # 生产环境建议跳过 Java 数据库自动更新
  skip_java_db_update: true

  # 启用离线扫描模式(避免依赖外部网络)
  offline_scan: true

  # 生产环境建议全安全检查(漏洞+配置+密钥)
  security_check: vuln,config,secret

  # 保持证书验证严格模式
  insecure: false

  # 根据实际镜像大小调整超时时间(建议 10-15 分钟)
  timeout: 15m0s

  # 在 air-gapped 环境需要注释以下 token
  # github_token: your_github_token

七、运行安装脚本

1、两种方式运行安装脚本
# 进入目录 harbor
cd /data/harbor

# 方式一:默认安装,不含 Trivy
./install.sh

# 方式二:包含 Trivy 的安装
./install.sh --with-trivy

看到下面输出,说明安装成功

[Step 5]: starting Harbor ...
[+] Running 10/10
 ✔ Network harbor_harbor        Created                                                                                                0.3s
 ✔ Container harbor-log         Started                                                                                                1.5s
 ✔ Container registryctl        Started                                                                                                5.0s
 ✔ Container harbor-db          Started                                                                                                5.6s
 ✔ Container redis              Started                                                                                                5.1s
 ✔ Container registry           Started                                                                                                5.6s
 ✔ Container harbor-portal      Started                                                                                                5.4s
 ✔ Container harbor-core        Started                                                                                                6.8s
 ✔ Container harbor-jobservice  Started                                                                                                9.6s
 ✔ Container nginx              Started                                                                                                9.7s
✔ ----Harbor has been installed and started successfully.----

2、浏览器访问
# 通过浏览器访问 Harbor 控制台,访问 https://harbor.zhixu.com 或http://192.168.31.116
# 如果是自签名证书,浏览器会有警告
# 默认用户 admin,默认初始密码 Harbor12345(可在 harbor.yml 中修改)
# 此密码仅在 Harbor 首次启动时使用,登录后记得修改密码。在后续登录时,将忽略此设置。

(1) 登录页
在这里插入图片描述
(2) 右上角点击账户 admin -> 修改密码
在这里插入图片描述
(3) 新建项目 nginx
在这里插入图片描述
(4) 测试 Harbor 是否能正常上传、下载镜像

# 下载 nginx 镜像
docker pull nginx
# 查看所有本地镜像
docker images
# 为本地 nginx 镜像添加一个新的标签
docker tag nginx:latest harbor.zhixu.com:443/nginx/nginx:1.0
# 登录 Docker Harbor 镜像仓库,输入账号和密码
docker login harbor.zhixu.com:443
# 推送镜像
docker push harbor.zhixu.com:443/nginx/nginx:1.0
# 拉取镜像
docker pull harbor.zhixu.com:443/nginx/nginx:1.0

八、其它

1、如果你希望通过 HTTP 来访问 Docker Registry(包括 Harbor),你需要在 Docker 客户端进行额外的配置,因为默认情况下 Docker 只允许通过 HTTPS 访问 registry。这需要你在 Docker 的配置文件 daemon.json 中添加对应的不安全注册表(insecure registry)。

# 编辑 /etc/docker/daemon.json,添加
"insecure-registries" : ["192.168.31.116"]
# 更新 docker 服务配置
systemctl daemon-reload
# 重启 docker 服务
systemctl restart docker

2、版本问题:Harbor 2.12.3

v 2.12.3 注释掉 https 部分,可以正常部署,但是登录的时候会提示:用户名或者密码不正确。维护人员已与 2025-5-23 在 新版本 2.12.4 中修复 2.12.3 版本中 http 登录问题,所有上文中使用的版本已经改成 2.12.4

<think>好的,用户想查找Rocky Linux 9.5安装教程、配置指南、系统要求和下载地址。首先需要确认Rocky Linux 9.5的官方信息是否存在,因为Rocky Linux版本通常以次要版本号更新,比如9.5可能属于某个特定时间点的更新。我需要先检查Rocky Linux的版本发布历史,确认9.5是否是一个有效版本。 假设Rocky Linux 9.5确实存在,接下来要收集相关的官方文档和资源。Rocky Linux官网通常会有详细的安装指南和系统要求。用户可能需要下载ISO镜像,所以需要提供正确的下载链接,确保链接是官方的,避免第三方源的风险。 安装步骤方面,一般包括创建启动盘、引导安装、分区设置、用户配置等。需要注意Rocky Linux使用Anaconda安装程序,类似RHEL,所以步骤应该和CentOS类似。需要详细说明每个步骤,尤其是分区和网络配置,这些是用户常遇到的问题点。 系统配置部分,安装后的初始化设置很重要,比如更新系统、安装常用工具(如vim、wget)、配置防火墙(firewalld)、设置SELinux等。用户可能还需要配置SSH服务,确保远程访问安全。这部分需要引用已有的可靠资料,比如引用[3]中提到重新加载systemd守护进程,可能适用于服务管理部分。 另外,用户可能对特定软件的安装感兴趣,比如Docker、MinIO或Jenkins,但当前问题主要集中在系统安装和基础配置。不过可以提到这些应用的安装方法作为后续步骤,但可能需要另外的指南。 需要验证提供的下载地址是否最新,避免提供过时的链接。同时,系统要求部分要明确硬件需求,比如CPU、内存、磁盘空间,这对用户准备环境很重要。 最后,确保回答结构清晰,分点列出安装步骤、配置指南、系统要求和下载地址,使用用户可见层的格式,保持语言简洁明了,避免技术术语过多,适合不同层次用户的理解。同时,生成的三个相关问题需要围绕Rocky Linux的常见需求,比如升级、特定软件安装和服务器配置,这样用户可以有进一步了解的途径。</think>### Rocky Linux 9.5 安装与配置指南 #### 一、系统要求 1. **硬件要求** - **CPU**:64位处理器(建议双核或更高) - **内存**:最小1GB(推荐4GB以上) - **存储**:至少20GB可用空间 - **网络**:支持IPv4/IPv6(若需联网安装) 2. **兼容性** Rocky Linux 9.5兼容x86_64、ARM64架构,支持物理机、虚拟机(如VMware、VirtualBox)及云平台(AWS、Azure等)。 --- #### 二、下载地址 - **官方镜像下载**: [Rocky Linux 9.5 下载页面](https://rockylinux.org/download) 提供ISO镜像(Minimal、DVD、Boot)及云镜像(适用于AWS、OpenStack等)[^1]。 --- #### 三、安装教程 **步骤1:创建启动介质** 1. 使用工具(如Rufus、Ventoy)将ISO镜像写入U盘或DVD。 2. 设置BIOS/UEFI从启动介质引导。 **步骤2:启动安装程序** 1. 选择“Install Rocky Linux 9.5”进入图形化安装界面。 2. 选择语言、时区(建议设为`Asia/Shanghai`)。 **步骤3:磁盘分区** - **自动分区**:默认使用LVM分区方案。 - **手动分区**(示例): - `/boot`:1GB(标准分区) - `swap`:2GB(物理内存≤2GB时设为双倍) - `/`:剩余空间(LVM) **步骤4:网络与主机名** 1. 启用网络接口(如`eth0`),建议配置静态IP(服务器场景)。 2. 设置主机名(如`server.example.com`)。 **步骤5:用户配置** 1. 设置root密码(需满足复杂度要求)。 2. 创建普通用户分配管理员权限(`sudo`)。 **步骤6:安装完成** 点击“Begin Installation”,安装完成后重启系统[^3]。 --- #### 四、基础配置指南 1. **系统更新** ```bash sudo dnf update -y ``` 2. **常用工具安装** ```bash sudo dnf install -y vim wget curl git ``` 3. **防火墙配置** ```bash sudo systemctl enable firewalld --now sudo firewall-cmd --permanent --add-service=http # 开放HTTP服务 sudo firewall-cmd --reload ``` 4. **SELinux管理** - 查看状态:`sestatus` - 临时禁用:`sudo setenforce 0` - 永久禁用:修改`/etc/selinux/config`为`SELINUX=disabled`。 --- #### 五、进阶配置(可选) - **Web服务器部署**:安装Nginx/Apache: ```bash sudo dnf install nginx -y sudo systemctl enable nginx --now ``` - **Docker支持**: 参考WSL2或Linux环境下的Docker安装步骤[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值