Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,除了Harbor这个私有镜像仓库之外,还有Docker官方提供的Registry。
Harbor的优势
1.提供分层传输机制,优化网络传输 Docker镜像是分层的,而如果每次传输都使用全量文件,FTP的方式不太合适。必须提供识别分层传输的机制,以层的UUID为标识,确定传输对象
2.提供web界面,优化用户体验 只用镜像的名字来进行上传和下载显然很不方便,需要有一个用户界面可以支持登录、搜索功能、包括区分公有私有镜像
3.支持水平扩展集群 当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分解
4.良好的安全机制 企业中的开发团队有很多不同的职位,对于不同的职位人员,分配不同的权限,具有更好的安全性
Harbor的安装步骤
1.在持续集成的流程中,Harbor需要安装在一台单独的服务器上,且先需要安装Docker,并启动Docker
2.安装docker-compose sudo curl -L -o /usr/local/bin/docker-compose
3.给docker-compose添加执行权限 sudo chmod +x /usr/local/bin/docker-compose
4.查看docker-compose是否安装成功 docker-compose -version
5.下载Harbor的压缩包 https://github.com/goharbor/harbor/releases
6.上传压缩包到linux,并解压 tar -zxvf harbor-offline-install-v1.9.2.tgz mkdir /opt/harbor mv harbor/* /opt/harbor cd /opt/harbor
7.修改harbor的配置,修改hostname和port vim /opt/harbor/harbor.yml hostname:10.150.110.xxx port:85
8.安装Harbor ./prepare ./install.sh
9.启动Harbor docker-compose up -d 启动 docker-compose stop 停止 docker-compose restart 重启
10.访问Harbor https://10.150.110.xxx:85 默认账户密码:admin/Harbor12345
在Harbor创建用户和项目
1.创建项目 Harbor的项目分为公开和私有的: 公开项目:所有用户都可以访问,通常存放公共的镜像,默认有一个library公开项目 私有项目:只有授权用户才可以访问,通常存放项目本身的镜像 2.创建用户 3.给私有项目分配用户
代码提交至代码托管服务器git代码仓库; 持续集成服务器到代码仓库拉取代码编译打包,并且构建docker镜像; 持续集成服务器将docker镜像推送到Docker仓库服务器(Harbor镜像仓库); 生产服务器从Harbor镜像仓库拉取镜像进行部署;
将持续集成服务器上的docker镜像上传至docker仓库(Harbor)
1.给image打上标签 docker tag eureka:v1 10.150.110.xxx:85/tensquare/eureka:v1
2.推送镜像 docker push 10.150.110.xxx:85/tensquare/eureka:v1
3.将Harbor地址加入到Docker信任列表 vi /etc/docker/daimon.json { “registry-mirrors”:[“https://zydio188.mirror.aliyun.com”], “insecure-registries”:[“10.150.110.xxx:85”] } 重启docker systemctl restart docker
4.再次推送镜像 若出现权限问题,需要先登录 docker login -u admin -p Harbor1234 10.150.110.xxx:85 登录成功后,即可推送 docker push 10.150.110.xxx:85/tensquare/eureka:v1
生产服务器从docker仓库(Harbor)下载镜像
从docker仓库(Harbor)服务器上下载镜像
1.在生产服务器上安装Docker,并且启动Docker
2.修改Docker配置,将Harbor地址加入到Docker信任列表 vi /etc/docker/daimon.json { “registry-mirrors”:[“https://zydio188.mirror.aliyun.com”], “insecure-registries”:[“10.150.110.xxx:85”] } 重启docker
3.先登录docker再从Harbor下载镜像 docker login -u admin -p Harbor1234 10.150.110.xxx:85 docker pull 10.150.110.xxx:85/tensquare/eureka:v1
|