harbor部署(离线版)

Harbor是VMware公司开源的企业级Docker Registry项目,目标是帮助用户快速搭建一个企业级的Docker Registry服务。

Harbor是以Docker公司开源的Registry为基础,提供了管理UI、基于角色的访问控制、AD/LDAP集成、日志审核等企业用户需求的功能,同时支持中文。

Harbor的每个组件都是以docker容器的形式构建的,使用Docker compose可以对它进行部署。

逻辑架构如下:

Harbor将一组Docker原生Registry做成集群,在最前端采用nginx等负载均衡器进行分发,同时每个Registry都将目录mount到宿主硬盘上,宿主机磁盘可以选择用Ceph或者Glusterfs,甚至更简单的nfs分布式存储的方式来保证数据高可用。

Harbor安装

环境:centos7系统、harbor(v1.5.3)离线版安装包

1、首先将安装包上传到服务器中,执行命令解压如图:

2、进入解压后的目录中,编辑配置文件harbor.cfg(新版harbor为harbor.yml),如图:

3、在配置文件中,设置访问域名(也可以设置为本机IP地址),如图:

根据自己的实际需要设置登录harbor的密码(默认用户为admin),如图:

4、设置完成后,执行./prepare配置harbor(新版不需要执行这个,直接执行install.sh即可),如图:

再次执行./install.sh安装harbor(要提前安装docker-compose),如图:

5、安装完成后,通过域名或者ip访问即可,如图:

注意:在访问前需要先让防火墙通过相应端口,或者关闭防火墙,如果是本地映射域名,还需要配置本地hosts文件

6、安装完成后在目录下可以看到docker-compose.yml文件,以后如果要进行启停操作可以通过docker-compose来实现,如图:

停止命令:docker-compose stop

启动命令: docker-compose up -d

停止并移除容器:docker-compose down

注意:如果报错ERROR:root:Error: The protocol is https but attribute ssl_cert is not set,没有证书,此时需要将https协议注释掉,如图:

登录仓库(推送和拉取镜像)

1、在另一个docker机器中通过docker login登录harbor,可以通过IP或者域名,如果是本地映射,需要在/etc/hosts中进行配置域名和IP,如图:

从上图中可以看到,登录的时候报错了,此时需要在daemon.json中配置harbor仓库地址(也可以配置IP地址),如图:

"insecure-registries": ["harbor.centos.com"]

如果需要配置多个仓库地址,可以中间使用逗号分隔,如图:

配置完成后重启docker进程或者执行如下命令实现热更新(推荐使用此方法,无需重启docker进程):

kill -SIGHUP $(pidof dockerd)

再次登录可以发现已经登录成功,如图:

2、登录成功后,在root目录下有一个隐藏文件.docker中的配置文件config.json中可以看到登录过的仓库信息,如图:

3、推送镜像:

可以先在harbor管理界面,创建一个仓库,取名为Public(名字可自定义),如图:

然后将镜像打标签,以仓库的作为前缀名,如图:

上图中mysql:5.7为原镜像 ,harbor.centos.com/public/mysql57为打标签后的镜像。

执行命令docker push harbor.centos.com/public/mysql57将镜像推送到仓库中,如图:

再次登录harbor页面,可以看到镜像已经推送到仓库中,如图:

4、拉取镜像:

登录harbor仓库后,进入要拉取的镜像页面,点击pull按钮即可复制拉取命令,如图:

附加:

如果要修改配置文件,步骤如下:

vim harbor.yml         //修改配置
./prepare              //加载配置
docker-compose stop    //停止harbor
docker-compose up -d   //启动harbor

标签