Harbor和Registry都是Docker的镜像仓库,但是Harbor作为更多企业的选择,是因为相比较于Regisrty来说,它具有很多的优势。
提供分层传输机制,优化网络传输
Docker镜像是是分层的,而如果每次传输都使用全量文件(所以用FTP的方式并不适合),显然不经济。必须提供识别分层传输的机制,以层的UUID为标识,确定传输的对象。
提供WEB界面,优化用户体验
只用镜像的名字来进行上传下载显然很不方便,需要有一个用户界面可以支持登陆、搜索功能,包括区分公有、私有镜像。
支持水平扩展集群
当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分解。
良好的安全机制
企业中的开发团队有很多不同的职位,对于不同的职位人员,分配不同的权限,具有更好的安全性。
Harbor提供了基于角色的访问控制机制,并通过项目来对镜像进行组织和访问权限的控制。kubernetes中通过namespace来对资源进行隔离,在企业级应用场景中,通过将两者进行结合可以有效将kubernetes使用的镜像资源进行管理和访问控制,增强镜像使用的安全性。尤其是在多租户场景下,可以通过租户、namespace和项目相结合的方式来实现对多租户镜像资源的管理和访问控制。
一、安装docker、docker-compose、harbor
yum -y install docker
访问harbor release page,下载Harbor软件tgz压缩包。
或者
wget https://github.com/goharbor/harbor/releases/download/v2.9.0/harbor-offline-installer-v2.9.0.tgz
docker-compose下载地址:
https://github.com/docker/compose/releases
或者使用pip安装(环境是python3因此使用pip3)
pip3 install docker-compose -i https://mirrors.aliyun.com/pypi/simple/
二、解压
tar zxvf harbor-offline-installer-v2.9.0.tgz
三、配置
将 harbor.yml.tmpl 复制一份harbor.yml进行修改,修改hostname和端口
四、安装
在harbor目录下面执行
./install.sh
docker-compose up -d
五、访问测试
默认用户 和登录密码 可以从 harbor.yml 中可以看到
admin / Harbor12345
访问 http://192.168.100.20:1122/
注意:
1、执行install.sh如果出现报错需要将https注释掉
2、docker-compose ps查看有restarting的状态要去/var/log/harbor中看对应日志报错信息
处理方式:将common/config改成最大权限777后重启docker-compose后正常
docker-compose down后再docker-compose up -d