容器应用的开发和运行离不开可靠的镜像管理。从安全和效率等方面考虑,部署在私有环境内的Registry是非常必要的。Project Harbor是由VMware公司中国团队为企业用户设计的Registry server开源项目,包括了权限管理(RBAC)、LDAP、审计、管理界面、自我注册、HA等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能,欢迎使用和反馈意见。
还是一个vmware开源的项目呢。但是界面上有点老气。
项目地址:
https://github.com/vmware/harbor
这货是用golang 写的不知道为啥下载需要这么大的文件,303MB,直接把docker镜像包括了。
https://github.com/vmware/harbor/releases
请使用下载器下载,要不然中间断了得哭死。或者在下班的时候下载。
扔到 centos7 上面。
tar -zxvf harbor-offline-installer-0.5.0.tgz cd harbor #vi /etc/hosts 10.0.2.15 reg.freewebsys.com
设置一个ip 然后修改 vi harbor.cfg
要安装成功还需要 docker registry。
https://c.163.com/hub
可以从国内的镜像下载,国内做个IT还真是艰苦。感觉上163的镜像应该靠谱点。
docker pull hub.c.163.com/library/registry:latest #将daocloud上面的registry 下载下来,然后换个tag让 harbor安装脚本识别。 docker tag daocloud.io/library/registry:latest library/registry:2.5.0 daocloud.io/library/registry latest d1e32b95d8e8 7 weeks ago 33.17 MB library/registry 2.5.0 d1e32b95d8e8 7 weeks ago 33.17 MB
同时还要安装docker-compose
设置目录权限,否则docker启动有问题:
**其中任何一个没有配置都会导致,一个docker容器启动不了。
造成连锁反应,导致harbor启动有问题。**
同时要保证本机没有启动nginx,mysql服务或端口未被占用。
chcon -Rt svirt_sandbox_file_t ./common/ harbor.cfg prepare chcon -Rt svirt_sandbox_file_t /data/registry chcon -Rt svirt_sandbox_file_t /var/log/harbor chcon -Rt svirt_sandbox_file_t /data/database chcon -Rt svirt_sandbox_file_t /data/job_logs
一共起来好多的服务呢。乱七八糟的。
[Step 4]: starting Harbor ... Creating network "harbor_default" with the default driver Creating harbor-log Creating harbor-db Creating registry Creating harbor-ui Creating harbor-jobservice Creating nginx ? ----Harbor has been installed and started successfully.---- Now you should be able to visit the admin portal at http://reg.freewebsys.com. For more details, please visit https://github.com/vmware/harbor .
启动成功可以通过web页面进行访问了。
默认的密码是 Harbor12345, 账号是 admin。
查看hub项目,现在还是空空的。
因为绑定的是一个 10.0.2.15 的ip,但是遇到。
使用admin登录
docker login 127.0.0.1 #可以登录 docker login 10.0.2.15 #不可以登录
修改配置: vi /etc/sysconfig/docker
INSECURE_REGISTRY='--insecure-registry 10.0.2.15'
启用不安全的登录方式,就可以使用admin登录啦。
在git上面已经有这个bug了。
https://github.com/vmware/harbor/issues/811
然后上传docker 镜像:
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE hub.c.163.com/library/registry latest d1e32b95d8e8 7 weeks ago 33.17 MB library/registry 2.5.0 d1e32b95d8e8 7 weeks ago 33.17 MB vmware/harbor-log 0.5.0 8a0833f24c8f 3 months ago 190.5 MB vmware/harbor-jobservice 0.5.0 f8d65542009e 3 months ago 169.4 MB vmware/harbor-ui 0.5.0 587e09accc1b 3 months ago 233 MB vmware/harbor-db 0.5.0 e4339a680042 3 months ago 326.8 MB nginx 1.11.5 05a60462f8ba 4 months ago 181.4 MB registry 2.5.0 c6c14b3960bd 7 months ago 33.28 MB photon 1.0 e6e4e4a2ba1b 8 months ago 127.5 MB #使用tag 重新给镜像打个tag,然后在push上去就可以了。 # docker tag hub.c.163.com/library/registry:latest 10.0.2.15/library/registry:latest # docker push 10.0.2.15/library/registry:latest
然后在公开项目中就可以看到上传的镜像了。
harbor 是一个docker 的可视化界面,能够浏览到docker registry 上面的docker镜像。非常的方便,但是搭建起来比较麻烦,还跑了nginx,mysql。
折腾折腾跑起来了。还是很简单的。