harbor的github仓库地址:harbor,找到自己要安装的版本提前下载,也可以在服务器wget下载,自行解决即可。
此处使用的版本为v2.1.4,并已上传并解压至服务器/usr/local/目录下,解压后的路径和内容如下:
这里提供一个生成证书的脚本,https://www.bookstack.cn/read/rancher-v2.x/43c8d247182c02a2.md,篇幅过大,请在原地址自取。
复制以上脚本内容,命名为create_cert.sh,给755权限,脚本参数参考如下说明:
--ssl-domain:生成ssl证书需要的主域名,如不指定则默认为localhost,如果是ip访问服务,则可忽略;
--ssl-trusted-ip:一般ssl证书只信任域名的访问请求,有时候需要使用ip去访问server,那么需要给ssl证书添加扩展IP,多个IP用逗号隔开;
--ssl-trusted-domain:如果想多个域名访问,则添加扩展域名(TRUSTED_DOMAIN),多个TRUSTED_DOMAIN用逗号隔开;
--ssl-size: ssl加密位数,默认2048;
--ssl-date: ssl有效期,默认10年;
--ca-date: ca有效期,默认10年;
--ssl-cn:国家代码(2个字母的代号),默认CN;
此处我的命令如下,可以参考。此处是局域网IP访问,不走域名,因此只配置IP:
./create_cert.sh --ssl-trusted-ip=192.168.0.201 --ssl-size=2048 --ssl-date=3650
运行之后会生成tls.key和tls.crt两个文件,留存备用,我个人习惯放在了/usr/local/cert目录下,下一节配置harbor时会用到。
这里安装的是1.25.5版本:
sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose #赋予可执行文件
安装完成后,使用docker-compose --version
检查是否成功。
从配置模板文件中复制出一个配置文件:
cp harbor.yml.tmpl harbor.yml
harbor v2.1.4版本的配置文件时yml格式的,而并非是远古版本的cfg格式,因此配置时需要注意。
使用vim打开harbor.yml配置文件,修改如下几个内容:
hostname: 192.168.0.201 #这里修改为服务器的外部可访问IP,此处服务器在局域网,是单IP,若是云服务商的内外双IP,请自行调整
http:
port: 20080 #修改http下的访问端口,这里使用20080
https:
port: 20443 #修改https下的访问端口,这里使用20443
certificate: /usr/local/cert/tls.crt #证书crt文件的位置,此处为/usr/local/cert/tls.crt
private_key: /usr/local/cert/tls.key #证书key文件的位置,此处为/usr/local/cert/tls.key
除此之外还有一些其他的配置,根据需要自行配置即可。
harbor目录中有一个prepare文件,执行此文件,开始配置harbor:
./prepare
执行完之后,会自动拉取镜像并进行配置,完成后,再执行install.sh进行安装:
./install.sh
看到此内容之后,就可以在浏览器访问进行测试了:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O95rTVeY-1626511738811)(http://qiniu.javafeng.com/1616727798179.png)]
浏览器输入https://192.168.0.201:20443,出现如下界面,表示搭建成功:
如果你没有修改配置文件中的默认密码,那么默认密码是Harbor12345,用户名为admin,登陆进去后即可进行新建项目、修改密码、创建用户等一系列操作,到此处,harbor就搭建完了。
首先在harbor中新建一个项目test,创建之后如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-udsWhEuU-1626511738816)(http://qiniu.javafeng.com/1616728122035.png)]
点击进入项目详情,右侧可以看到tag镜像和push镜像的命令:
我服务器上有一个jupyter/all-spark-notebook镜像,这里我把这个镜像tag并push到harbor中:
docker tag jupyter/all-spark-notebook 192.168.0.201:20443/test/jupyter/all-spark-notebook
先登录私有仓库:
docker login 192.168.0.201:20443
不出意外,会出现certificate signed by unknown authority
错误,这个是因为harbor设置HTTPS后,需要通过以下步骤:
在此尝试登陆,登陆成功:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iygGErQP-1626511738819)(http://qiniu.javafeng.com/1616728766149.png)]
然后推送镜像:
docker push 192.168.0.201:20443/test/jupyter/all-spark-notebook
这里就表示成功了。搭建harbor全部结束,上一篇是在部署过程中遇到的问题,然后对部署做了此篇总结,搭配食用更香。