前言
之前整理过一篇基于docker安装的Harbor的文章,但是在实际的运用中,发现那么玩并不实用,根据后续的实用,这里重新整理一个新的教程
准备
Docker安装及docker-compose
可参考:CentOS 7下安装Docker及基础操作;Harbor的运行是通过docker-compose进行服务编排,所以这里需要优先安装好;
下载Harbor安装包
- 版本查看
官方地址,选择自己需要安装的版本; - 下载
- 直接在上面的官网点击下载
- wget安装
// 第一步 找到上图中对应版本的包,右键复制连接 // 在linux上通过以下指令 wget https://github.com/goharbor/harbor/releases/download/v1.10.1/harbor-offline-installer-v1.10.1.tgz
- 下载建议
建议将上面的地址拷贝出来,通过迅雷下载,速度会快很多,毕竟包有点大,咱的时间比较珍贵。
- 直接在上面的官网点击下载
安装
- 解压
如果不是通过wget下载的,通过xftp将下载的包上传到服务器/use/local下tar -zxvf harbor-offline-installer-v1.10.1.tgz
证书
- 获取域名的SSL证书
这里的域名格式如下: https://hub.youdname.com youdname表示你的域名
可以通过以下的方式得到SSL证书:
方式一(土豪推荐):花钱买
方式二(首选推荐):自签名的泛域名证书;ACME.sh 使用指南,Let’s Encrypt的签发使用;此方式会麻烦一些,但是申请的是泛域名的证书,一劳永逸,之后的所有二级域名都可以使用这个证书;并且证书会定时更新,不会过期;
方式三(推荐):通过腾讯云或者阿里云申请免费的证书,有效期为一年;免费SSL证书实现https请求;免费没法申请泛域名证书;但是申请起来会比较简单,过期需要自己重新事情;// 成功之后可以得到以下两个证书 1-hub.youdname.com.crt 2-hub.youdname.com.key
// 成功之后可以得到以下两个证书 youdname.com.crt youdname.com.key
配置
- 进入解压目录
cd /usr/local/harbor // 创建用于保存数据的数据的目录 mkdir -p /home/docker/harbor/data
- 修改harbor.yml 主需要修改以下配置
// 第一个参数,域名 hostname: hub.youdname.com // http的端口,建议不要设置为8080,容易和其他服务冲突 http.port: 880 // https端口 https.port: 443 https.certificate: 你的ssl证书路径/hub.youdname.com.crt https.private_key: 你的ssl证书路径/hub.youdname.com.key // 管理员密码 harbor_admin_password: 自己定义 // 数据库密码 database.password: 数据库密码,自己定义,也可以不该 // 存储数据的路径 data_volume: /home/docker/harbor/data(可更改)
- 启动
启动会分为5步cd /usr/local/harbor ./install.sh
第一步:检查Docker安装
第二步:检查docker-compose安装
第三步:下载关联的镜像
第四步:初始化配置
第五步:启动服务
- 获取域名的SSL证书
Nginx代理配置
可以通过Nginx,统一入口,代理到Harbor的服务
-
配置
server { listen 80; listen 443 ssl; server_name hub.youdname.com(根据个人的解析修改) ssl on; ssl_certificate 你的ssl证书路径/youdname.com.crt; ssl_certificate_key 你的ssl证书路径/youdname.com.key; ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m; ssl_protocols TLSv1.1 TLSv1.2; client_max_body_size 0; # disable any limits to avoid HTTP 413 for large image uploads # required to avoid HTTP 411: see Issue #1486 (https://github.com/docker/docker/issues/1486) chunked_transfer_encoding on; upstream internal_docker_registry { server 192.168.1.123:443; # IP修改为你安装Harbor的地址 } location / { proxy_pass https://internal_docker_registry; proxy_read_timeout 90; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_bypass $http_upgrade; } }
-
重启NG
sbin/nginx -s reload
测试
- 访问管理平台
https://hub.youdname.com
- 推送测试
具体使用就不说啦,界面很整洁,管理平台点吧点吧就知道怎么用了;