建立本地Harbor仓库
在docker的daemon.json 中添加证书相关配置,并重启docker
"insecure-registries":["https://hub.sunwin.com"]
在hosts中追加域名配置,高亮部分为当前机器ip
echo "192.168.1.134 hub.sunwin.com" >> /etc/hosts
Harbor 安装:
Harbor 官方地址: https://github.com/vmware/harbor/releases
下载软件包
wget https://github.com/vmware/harbor/releases/download/v1.2.0/harbor-offline-installer-v1.2.0.tgz
1 、解压软件包:
tar xvf harbor-offline-installer-<version>.tgz
2 、配置 harbor.cfg
必选参数,主要需要配置hostname和ui_url_protocol
hostname :目标的主机名或者完全限定域名
ui_url_protocol : http 或 https 。默认为 http,修改成https
db_password :用于 db_auth 的 MySQL 数据库的根密码。更改此密码进行任何生产用途
max_job_workers :(默认值为 3 )作业服务中的复制工作人员的最大数量。对于每个映像复制作业,工作人员将存储库的所有标签同步到远程目标。增加此数字允许系统中更多的并发复制作业。但是,由于每个工作人员都会消耗一定数量的网络 / CPU / IO 资源,请根据主机的硬件资源,仔细选择该属性的值
customize_crt :( on 或 off 。默认为 on )当此属性打开时, prepare 脚本将为注册表的令牌的生成 / 验证创建私钥和根证书
ssl_cert : SSL 证书的路径,仅当协议设置为 https 时才应用
ssl_cert_key : SSL 密钥的路径,仅当协议设置为 https 时才应用
secretkey_path :用于在复制策略中加密或解密远程注册表的密码的密钥路径
3 、创建 https 证书以及配置相关目录权限
创建文件夹用于存放证书
mkdir /data/cert
生成私钥(输入两次密码,自己定一个)
openssl genrsa -des3 -out server.key 2048
创建证书请求(输入刚才的密码,国家、省、市、组织、机构、服务地址如hub.sunwin.com、邮箱地址,后面两处不需要修改,直接回车)
openssl req -new -key server.key -out server.csr
备份私钥
cp server.key server.key.org
退私钥密码
openssl rsa -in server.key.org -out server.key
签名证书
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
赋权限
chmod -R 777 /data/cert
4 、运行脚本进行安装
./install.sh
5 、访问测试
https://reg.yourdomain.com 的管理员门户(将 reg.yourdomain.com 更改为您的主机名, harbor.cfg当中配置的 );
或者使用如下控制台命令进行测试
docker login https://reg.yourdomain.com
默认管理员用户名 / 密码为 admin / Harbor12345