一.安装前提条件: 硬件官方文档:Harbor docs | Harbor Installation and Configuration (goharbor.io)
| 资源 | 最低 | 推荐 |
|---|---|---|
| CPU | 2C | 4C |
| 内存 | 4G | 8G |
| 硬盘 | 40G | 160G |
| 软件 | 版本 | 描述 |
|---|---|---|
| docker | v17.0.6-ce+ | 安装参考 安装 Docker 引擎|Docker 文档 |
| docker compose | v1.18.0+ | 安装参考 Install Docker Compose | Docker Documentation |
| Openssl | latest | 用于为 Harbor 生成证书和密钥 |
需要开放端口
| 端口 | 协议 | 描述 |
|---|---|---|
| 443 | HTTPS | 网页https访问端口 |
| 4443 | HTTPS | 与 Harbor 的 Docker Content Trust 服务的连接。仅当启用了公证时才需要 |
| 80 | HTTP | 网页访问端口 |
下载页面 Releases · goharbor/harbor · GitHub
1.下载解压
wget https://github.com/goharbor/harbor/releases/download/v2.4.2/harbor-online-installer-v2.4.2.tgz tar xvf harbor-online-installer-v2.4.2.tgz -C /usr/local/
2.相关文件介绍
# harbor配置文件模板 harbor.yml.tmpl # 首次安装需要先执行,会生成docekr-compose.yml文件 # 更新harbor配置文件后也需要执行此文件 prepare # 安装启动脚本 install.sh # 容器启动相关配置文件目录 common
3.修改配置
cd /usr/local/harbor/ cp harbor.yml.tmpl harbor.yml vi harbor.yml ###==== 修改以下参数 # 访问域名 hostname : my.harbor.com # 配置https证书路径 certificate: /data/cert/my.harbor.com.crt private_key: /data/cert/my.harbor.com.key # 管理员密码 harbor_admin_password: AdminPassword database: # 设置pgsql管理员密码 password: root123 # 存储路径 data_volume: /data
4.安装
cd /usr/local/harbor/ # 每次修改配置后都先执行此命令 ./prepare # 执行安装脚本 ./install.sh2.配置HTTPS 2.1 生成证书颁发机构证书
- 生成 CA 证书私钥
openssl genrsa -out ca.key 4096
- 生成 CA 证书
openssl req -x509 -new -nodes -sha512 -days 3650 -subj "/C=CN/ST=hubei/L=wuhan/O=test/OU=test/CN=my.harbor.com" -key ca.key -out ca.crt2.2 生成服务器证书
证书通常包含一个文件和一个文件
.crt .key my.harbor.com.crt my.harbor.com.key
1.生成私钥
openssl genrsa -out my.harbor.com.key 4096
2.生成证书签名请求 (CSR)
openssl req -sha512 -new
-subj "/C=CN/ST=hubei/L=wuhan/O=test/OU=test/CN=my.harbor.com"
-key my.harbor.com.key
-out my.harbor.com.csr
3.生成 x509 v3扩展文件
无论您使用FQDN还是IP地址连接到Harbor主机,都必须创建此文件,以便可以为您的Harbor主机生成符合主题备用名称(SAN)和x509 v3的证书扩展要求。替换DNS条目以反映您的域
cat > v3.ext <<-EOF authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment extendedKeyUsage = serverAuth subjectAltName = @alt_names [alt_names] DNS.1=my.harbor.com DNS.2=my.harbor DNS.3=harbor EOF
4.使用该v3.ext文件为您的Harbor主机生成证书
openssl x509 -req -sha512 -days 3650
-extfile v3.ext
-CA ca.crt -CAkey ca.key -CAcreateserial
-in my.harbor.com.csr
-out my.harbor.com.crt
2.3 提供证书给Harbor和Docker
生成文件后,需要提供给 Harbor 和 Docker,并重新配置 Harbor 使用证书
1.将服务器证书和密钥复制到 Harbor主机证书文件夹中
cp my.harbor.com.crt /data/cert/ cp my.harbor.com.key /data/cert/
2.转换my.harbor.com.crt为my.harbor.com.cert,供Docker使用
Docker守护程序将.crt文件解释为CA证书,并将.cert文件解释为客户端证书
openssl x509 -inform PEM -in my.harbor.com.crt -out my.harbor.com.cert
3.将服务器证书、密钥和 CA 文件复制到 Harbor 主机上的 Docker 证书文件夹中
cp my.harbor.com.cert /etc/docker/certs.d/my.harbor.com/ cp my.harbor.com.key /etc/docker/certs.d/my.harbor.com/ cp ca.crt /etc/docker/certs.d/my.harbor.com/
如果将默认nginx端口443映射到其他端口,请创建文件夹
/etc/docker/certs.d/my.harbor.com:port或/etc/docker/certs.d/harbor_IP:port
4.重新启动Docker Engine
systemctl restart docker2.4 部署或重新配置Harbor
如果尚未部署 Harbor,需要配置harbor的yml文件中 hostname、https参数
如果已部署Harbor希望配置为HTTPS,执行以下步骤
- 运行 prepare 脚本以启用 HTTPS
./prepare
- Harbor正在运行,需要先停止并删除现有实例
docker-compose down -v
重新启动Harbor
docker-compose up -d三.重置密码 修改密码
进入 harbor-db 容器内
docker exec -it harbor-db /bin/bash
登录 pgsql 操作
# 登录pgsql,默认密码为 root123 psql -h postgresql -d postgres -U postgres # 切换到harbor所在数据库 c registry # 查看 harbor_user 表 select * from harbor_user; # 修改 admin 密码,修改为初始密码 Harbor12345 # 老版本操作, 但是v2.4版本无效 #update harbor_user set password='a71a7d0df981a61cbb53a97ed8d78f3e',salt='ah3fdh5b7yxepalg9z45bu8zb36sszmr' where username='admin'; # v2.4版本操作 update harbor_user set salt='', password='' where username='admin'; # 退出 q exit重启服务
docker-compose down -v docker-compose up -d



