前言
之前整理过一篇基于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的签发使用;此方式会麻烦一些,但是申请的是泛域名的证书,一劳永逸,之后的所有二级域名都可以使用这个证书;并且证书会定时更新,不会过期;
// 成功之后可以得到以下两个证书
1-hub.youdname.com.crt
2-hub.youdname.com.key
- 方式三(推荐):通过腾讯云或者阿里云申请免费的证书,有效期为一年;免费SSL证书实现https请求;免费没法申请泛域名证书;但是申请起来会比较简单,过期需要自己重新事情;
// 成功之后可以得到以下两个证书
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(可更改)
- 启动
cd /usr/local/harbor
./install.sh
- 启动会分为5步
第一步:检查Docker安装
第二步:检查docker-compose安装
第三步:下载关联的镜像
第四步:初始化配置
第五步:启动服务
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 - 推送测试
具体使用就不说啦,界面很整洁,管理平台点吧点吧就知道怎么用了;