略
1.2 安装docker-compose
从TeleDCOS包中获取文件docker-compose-1.9.0,拷贝到主机的/usr/bin目录下,并重命名为 docker-compose,然后添加可执行权限
执行以下命令,查看是否能显示版本信息
$ docker-compose -v
docker-compose version 1.9.0, build 2585387
从TeleDCOS包中获取harbor安装包,文件名为 harbor-offline-installer-0.5.0.tgz,大概303M
把下载好的压缩包放在主机的 ~ 目录下,然后解压。解压后在当前目录下就会出现一个harbor文件夹。
找到如下一行
修改为
其中x.x.x.x为harbor所在宿主机的物理IP地址,8021为harbor对外的端口(可以自定义)
找到如下一段配置
修改为
找到如下一段配置
修改“- 80:80”这一行,删除“- 443:443”这一行,最终修改为
注意: “- 8021:80” 中的8021要与 harbor.cfg中的 “hostname: x.x.x.x:8021” 中端口保持一致
修改 common/templates/registry/config.yml(可选)
如果想去掉认证(即不用docker login就能直接push与pull镜像),删除如下几行
harbor的数据默认存储在/data目录下,如果要更改为其他目录比如/dcos/data/harbor,则把docker-compose.yml文件中的如下四行进行修改
上述四行内容的修改,可以用如下命令达到
修改了docker-compose.yml文件,我们还需要修改prepare脚本文件,更改第63行,把default='/data/'修改为default='/dcos/data/harbor/'
执行如下命令启动harbor
启动过程大约需求一两分钟,过程中且不断会有日志输出,耐心等待harbor启动完成
在harbor目录下执行以下命令,如果六个容器均为Up状态,说明启动成功
在浏览器中输入 x.x.x.x:8021,初始用户名与密码为 admin/Harbor12345
目前harbor的高可用是通过project之间的复制策略来保证的。假设我们在10.142.232.161和10.142.232.162上都装好了harbor,接下来,我们来介绍一下如何在两个harbor的project之间创建复制策略
我们先在两个harbor实例上都创建一个相同的用户,假设为user1(注意两个harbor上都要创建用户,用户名相同,密码相同)
创建用户的操作要使用admin用户
在10.142.232.162的harbor上创建一个target,指向10.142.232.161的harbor。
创建target的操作要使用admin用户
与上面的操作类似
使用user1用户登录,创建项目 project1user1(两个harbor实例上都要创建)
使用admin用户登录,为项目project1user1创建复制策略
与上面的操作类似
161的project1user1中的镜像会自动同步到162上,162的project1user1中的镜像也会同步到161,从而实现了harbor间镜像的同步。可以push镜像进行验证
由于两个harbor实例的IP不一样,所以我们还需要在两台主机上安装keepalived,使两台主机绑定一个vip(假设为10.142.232.160),当其中一台主机挂了,vip会漂移到另一台主机上,这样保证了harbor的高可用。
注意: 我们使用的harbor的地址应该为vip,即 10.142.232.160:8021
dcos管理平台会在某个harbor实例上创建好用户与项目,所以我们创建用户与项目时只需要在其中某一个harbor实例上操作就可以