Harbor是由 VMWare 公司开源的容器镜像仓库。
Harbor内容包括:
- 镜像仓库权限控制
- 镜像远程同步复制
- 大规模镜像发布
- 镜像删除和空间回收
Docker容器生命周期图
图片.png
镜像仓库权限
测试人员通常只需要镜像的读权限(pull)
开发人员需要读写权限(push/pull)
项目经理除了拥有开发人员的权限之外,还可以增加和删除项目成员,设定他们的角色
镜像远程同步复制
可以配置两台harbor做同步复制
大规模镜像发布
图片.png
镜像删除和空间回收
Docker命令没有提供Registry镜像删除功能,日积月累,将会产生许多无用的镜像,占用大量存储空间。若要删除镜像并回收空间,需要调用docker registry API来完成,比较麻烦。Harbor提供了可视化的镜像删除界面,可以逻辑删除镜像。在维护状态下可以回收垃圾镜像的空间。
实战应用【在线部署】
下载地址https://github.com/goharbor/harbor/releases
图片.png
服务器需要事先安装好docker相关组件
yum -y install docker-compose
tar -zxf harbor-online-installer-v2.0.0.tgz
cp harbor.yml.tmpl harbor.yml
编辑harbor.yml,如果本地80端口已被占用,修改http端口,https默认是开启的
图片.png
执行install.sh脚本,最后提示安装成功,即为正常
图片.png
图片.png
如果修改配置,重启harbor
cd /opt/harbor
docker-compose down
./prepare
docker-compose up -d
默认登陆密码在harbor.yml中
图片.png
登陆默认有一个library项目,新建一个
图片.png
图片.png
把服务器上的nginx镜像上传到harbor
打标签
图片.png
docker tag nginx:latest 172.16.20.52:8080/rancher_harbor/nginx:latest
将运行的容器打包成镜像的命令:
docker commit -a="joychen" -m="test nginx v1" 9c5c8560ec32 172.16.20.52:8080/library/nginx-alpine:v1
-a :打包人 -m:描述 容器名 打包后的版本
图片.png
登录harbor
docker login http://172.16.20.52:8080
上传
docker push 172.16.20.52:8080/rancher_harbor/nginx:latest
提示如下错误,是由于docker默认使用的https协议,需要做信任
新建/etc/docker/daemon.json
{
"insecure-registries": ["172.16.20.52:8080"]
}
重启docker,再次上传
图片.png
图片.png
在其他服务器上拉取镜像
docker pull 172.16.20.52:8080/rancher_harbor/nginx:latest
图片.png
网友评论