DevOps系列:HARBOR私有镜像仓库搭建

前言:

HARBOR,即基于WEB界面的可视化DOCKER私有镜像仓库服务。这实际上与DevOps没太大直接关系,之所以说是DevOps系列,是因为HARBOR的更高层次应用方向便是DevOps方向了。实际上,DevOps是一整套的系统,是各种服务的组合,可以包括的服务,要视整个系统的需求而定,此处不作更多的说明。

一、硬件与软件环境

本教程在以下环境下搭建测试通过!

  • 硬件 :VMWARE虚拟机

  • 操作系统 :DEBIAN 10

  • HARBOR版本 :harbor.v1.10.1

  • DOCKER版本 :19.03.6

  • DOCKER-COMPOSE版本:1.25.4

  • 代码测试日期:2020年03月10日

二、DOCKER环境构建

对于DOCKER环境的构建,博主一直是推荐从官方页面获取安装方法的[官方地址];最主要的原因是,你无法确定官方会不会在某次更新后,其安装方法发生了改变,造成那些在网络上泛滥的"docker-ce"安装代码失效。当然这里说的是方法,国内用户还是需要必要的变通的,比如说使用国内的镜像源,否则,这繁忙的国际网络,会让DOCKER环境的构建成为一件痛苦的事。下面是在DEBIAN系统上安装DOCKER环境的示例,使用了国内的源,博主并不能保证其不会失效。

至此,已经在DEBINA系统上完成了DOCKER环境的配置了!!

三、HARBOR安装前准备

本处将生成相关证书,使HARBOR支持HTTPS。关于DOCKER,在连接镜像仓库下载镜像时,其默认的配置值是必须使用HTTPS连接的,所以本处需要生成证书。当然,你也可以修改DOCKER的配置文件,使其支持HTTP,对于使用HTTP的方式,本文不详细述说。

以下为私有证书的生成过程及一些简单的解读:

至此,本文已依据上述命令生成一个主域名为"lemonsys.test"的泛域名证书!!而且本证书并不限制于本服务使用。比方说,下次读者希望搭建一个GITLAB的私有服务,那么可以使用一个如"gitlab.lemonsys.test"的域名并结合此证书以提供HTTPS属性,当然,别忘记在本地主机的"hosts"文件上作对应的域名解释。

之后,我们对服务器进行静态IP地址配置,需要对"/etc/network/interfaces"文件进行编辑;

至以下为文件的具体配置内容,修改后保存配置;

配置保存后,对网卡进行停启操作,以便IP地址生效;

四、HARBOR配置及安装

首先到官网下载安装包,GIT地址[https://github.com/goharbor/harbor/releases],本博文选择的安装包为:[ harbor-offline-installer-v1.10.1.tgz ],这是离线版本,建议使用,要不国外线路的下载速度……你懂的~

修改配置文件"harbor.yml",SHELL下可以使用vi、vim、nano等命令,图形化界面的随便;此处仅列出比较常用的项,其它配置项请依据自己的需求修改;

正式开始HARBOR的安装;

五、HARBOR使用前配置

1、添加自定义的域名解释;由于我们定义的HARBOR服务的域名在互联网是不存在的,所以我们无法通过互联网的DNS服务器作域名解释,所以,我们需要使用到本地主机的域名解释文件[hosts文件]。下面包括了LINUX与WINDOWS下的"hosts"文件的修改,读者按需要选用,本示例使用了命令行的方式对"hosts"文件进行修改,读者也可选择使用图形化文本工具进行配置。注意,由于缺乏验证,重复使用下列命令对"hosts"文件进行修改可能会使你的"hosts"文件中存在多余的域名解释记录;

HARBOR服务端的操作:

客户端的操作:

2、私有证书授信;由于本例的私有HARBOR服务器使用的是自签名的HTTPS证书文件,而DOCKER服务默认仅接受合法CA颁发的证书文件,因此,我们需要将自签名的证书手动添加至主机内的证书受信任名单内;主要作用为,使DOCKER客户端的上传操作生效[docker push],避免产生证书无效的错误;以下以另外一台LINUX主机模拟客户端,操作如下;

补充:以下命令是以服务端作为客户端时需要;即该主机同时是服务端,同时又以此主机作为客户端使用时需要[你不想再新建一台主机作测试];

六、HARBOR服务验证

1、WEB登录;你可以使用DEBINA虚拟机中的浏览器或WINDOWS系统中的浏览器对"harbor.lemonsys.test"进行访问,并通过用户名"admin"及密码"Harbor12345"登陆HARBOR。注意,如果你是使用WINDOWS下的浏览器,来访问VM虚拟机中创建HARBOR服务的,请确保WINDOW主机下至VM虚拟机之间的路由可达,并且已经对"hosts"文件做好相对应的域名解释;

DevOps系列:HARBOR私有镜像仓库搭建

WINDOWS下WEB登陆界面展示

2、SHELL界面私有HARBOR服务器登录,及上传私有镜像;为方便显示其过程,本示例将从官方下载"busybox"镜像,并使用另外一台同IP网段内的LINUX虚拟机;该虚拟机记得需要作"五、HARBOR使用前配置";

DevOps系列:HARBOR私有镜像仓库搭建

DevOps系列:HARBOR私有镜像仓库搭建

DevOps系列:HARBOR私有镜像仓库搭建

演示图

七、其它

我也不知道为什么写这个,反正也没人看,不过,在核对代码时,发现了一件有趣的事,博主发现了支持ARM架构HARBOR的非官方镜像,这使得在树莓派上架设HARBOR成为了可能,如果那些镜像可用,可能会有一篇基于树莓派的HARBOR架设教程。

DevOps系列:HARBOR私有镜像仓库搭建:等您坐沙发呢!

发表评论

表情
还能输入210个字