Harbor
是一款优秀的开源企业容器镜像仓库。包括了基于web界面的权限管理(RBAC)、LDAP、审计、安全漏洞扫描、镜像验真、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。
官网链接:https://goharbor.io/
为方便应用开发部署,想要自己搭建Docker 镜像仓库,以下是部署过程。
zhuzl@zhuzl-M9-PRO:/data/software/harbor$ uname -a
Linux zhuzl-M9-PRO 6.2.0-26-generic #26~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Jul 13 16:27:29 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
一、下载安装包
根据Harbor
官网的引导,可通过github的发布页面下载离线安装包:
由于国内网络下载速度堪忧,本次下载使用 ghproxy.com 进行代理加速下载,也就是在下载地址前添加 https://ghproxy.com/
。
下载记录如下:
zhuzl@zhuzl-M9-PRO:/data/software$ wget https://ghproxy.com/https://github.com/goharbor/harbor/releases/download/v2.8.4/harbor-offline-installer-v2.8.4.tgz
--2023-08-18 08:48:42-- https://ghproxy.com/https://github.com/goharbor/harbor/releases/download/v2.8.4/harbor-offline-installer-v2.8.4.tgz
正在解析主机 ghproxy.com (ghproxy.com)... 192.9.132.155
正在连接 ghproxy.com (ghproxy.com)|192.9.132.155|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 608175520 (580M) [application/octet-stream]
正在保存至: ‘harbor-offline-installer-v2.8.4.tgz’
harbor-offline-installer-v2.8.4.tgz 100%[==============================================================================================>] 580.00M 4.40MB/s 用时 2m 9s
2023-08-18 08:50:52 (4.49 MB/s) - 已保存 ‘harbor-offline-installer-v2.8.4.tgz’ [608175520/608175520])
zhuzl@zhuzl-M9-PRO:/data/software$
二、解压安装包
文件下载下来是一个以 .tgz
格式结尾的压缩文件,我们可以直接使用 tar 解压,解压命令为(需替换X.Y.Z为下载对应的版本):
tar -zxvf harbor-offline-installer-vX.Y.Z.tgz
解压记录如下:
zhuzl@zhuzl-M9-PRO:/data/software$ tar -zxvf harbor-offline-installer-v2.8.4.tgz
harbor/harbor.v2.8.4.tar.gz
harbor/prepare
harbor/LICENSE
harbor/install.sh
harbor/common.sh
harbor/harbor.yml.tmpl
zhuzl@zhuzl-M9-PRO:/data/software$
三、配置及安装
搜了下网上的课程,大多都是从配置证书开始的,我部署应用时一般都是应用开启http服务,使用nginx代理的时候再使用SSL证书对外提供https的访问。
3.1 配置
拷贝解压出来的 harbor.yml.tmpl
文件为 harbor.yml
。修改这个配置文件。主要有如下信息需要修改的地方:
- hostname: 修改为域名
- https: 根据需要配置,我本处是直接注释掉了
- harbor_admin_password:管理员密码
- data_volume: harbor数据目录,这是宿主机的文件目录
修改后执行初始化:
./prepare
初始化日志记录日下:
zhuzl@zhuzl-M9-PRO:/data/dockerRoot/apps/harbor$ ./prepare
prepare base dir is set to /data/dockerRoot/apps/harbor
WARNING:root:WARNING: HTTP protocol is insecure. Harbor will deprecate http protocol in the future. Please make sure to upgrade to https
Generated configuration file: /config/portal/nginx.conf
Generated configuration file: /config/log/logrotate.conf
Generated configuration file: /config/log/rsyslog_docker.conf
Generated configuration file: /config/nginx/nginx.conf
Generated configuration file: /config/core/env
Generated configuration file: /config/core/app.conf
Generated configuration file: /config/registry/config.yml
Generated configuration file: /config/registryctl/env
Generated configuration file: /config/registryctl/config.yml
Generated configuration file: /config/db/env
Generated configuration file: /config/jobservice/env
Generated configuration file: /config/jobservice/config.yml
Generated and saved secret to file: /data/secret/keys/secretkey
Successfully called func: create_root_cert
Generated configuration file: /compose_location/docker-compose.yml
Clean up the input dir
zhuzl@zhuzl-M9-PRO:/data/dockerRoot/apps/harbor$
初始化完成后,会在当前目录生成 `docker-compose.yml`文件,此时,我们可以使用 `docker compose` 启动docker 服务啦,日志记录如下:
zhuzl@zhuzl-M9-PRO:/data/dockerRoot/apps/harbor$ sudo docker compose up -d
[+] Running 9/9
✔ Container harbor-log Started 0.3s
✔ Container redis Started 0.7s
✔ Container registry Started 1.1s
✔ Container registryctl Started 0.9s
✔ Container harbor-portal Started 0.8s
✔ Container harbor-db Started 1.1s
✔ Container harbor-core Started 1.5s
✔ Container nginx Started 2.0s
✔ Container harbor-jobservice Started 2.1s
zhuzl@zhuzl-M9-PRO:/data/dockerRoot/apps/harbor$
对了,执行`docker compose`的时候一定要用`sudo`,否则会出现文件权限相关的报错。
启动完成后,可以通过 `nginx` 配置代理的方式对外提供服务,配置好后,访问出现如下图所示的登录界面:
![harbor 登录界面](https://blog.zhuzhilong.cn/usr/uploads/2023/08/2381568293.png)
在登录界面可以使用管理员账号 admin,进行登录,密码为在`harbor.yml` 文件中`harbor_admin_password` 配置的默认密码。
登录成功后,主界面如下图所示:
![Harbor主界面](https://blog.zhuzhilong.cn/usr/uploads/2023/08/3334557343.png)
评论 (0)