Harbor简介
Harbor (港口,港湾)是一个用于存储和分发Docker镜像的企业级Registry服务器。
除了Harbor这个私有镜像仓库之外,还有Docker官方提供的Registry。相对Registry,Harbor具有很多优势:
- 提供分层传输机制,优化网络传输 Docker镜像是是分层的,而如果每次传输都使用全量文件(所以用FTP的方式并不适合),显然不经济。必须提供识别分层传输的机制,以层的UUID为标识,确定传输的对象。
- 提供WEB界面,优化用户体验 只用镜像的名字来进行上传下载显然很不方便,需要有一个用户界面可以支持登陆、搜索功能,包括区分公有、私有镜像。
- 支持水平扩展集群 当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分解。
- 良好的安全机制 企业中的开发团队有很多不同的职位,对于不同的职位人员,分配不同的权限,具有更好的安全性。
Harbor安装
- 先安装Docker并启动Docker;(docker的安装这里不做过多赘述)。
- 先安装docker-compose;
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
- 1
- 给docker-compose添加执行权限;
sudo chmod +x /usr/local/bin/docker-compose
- 1
- 查看docker-compose是否安装成功;
docker-compose -version
- 1
- 下载Harbor的压缩包;
- 上传压缩包到虚拟机,并解压;
tar -zxvf harbor-offline-installer-v1.9.2.tgz
- 1
- 修改Harbor的配置(harbor.yml);
7.1. 修改主机地址:hostname: 192.168.56.11;
7.2. 修改端口(默认端口80):port: 85;- 启动之前需要使用./prepare命令进行一些预置工作,下载相关依赖;
8.1. 此时需要开启docker服务,不然会报错;
8.2. 这个过程可能有点长,需要耐心等待;
/prepare
- 1
- 准备工作完成后,使用./install.sh进行Harbor的安装;
9.1. 这个过程会持续一段时间,耐心等待;
./install.sh
- 1
- 访问http://192.168.56.11:85/
10.1. 如果访问不到,可以看一下防火墙是否关闭,或者端口是否开放;
- 登录
11.1. 默认登录名:admin;
11.2. 默认登录密码:Harbor12345;
11.3. 具体可以查看harbor.yml;
补充(启动Harbor)
docker-compose up -d 启动
docker-compose start 启动
docker-compose stop 停止
docker-compose restart 重新启动
在Harbor创建用户和项目
- 创建项目(Harbor的项目分为公开和私有的);
1.1. 公开项目:所有用户都可以访问,通常存放公共的镜像,默认有一个library公开项目;
1.2. 私有项目:只有授权用户才可以访问,通常存放项目本身的镜像;
- 创建用户;
- 给私有项目分配用户;
角色 | 权限说明 |
访客 | 对于指定项目拥有只读权限 |
开发人员 | 对于指定项目拥有读写权限 |
维护人员 | 对于指定项目拥有读写权限,创建 Webhooks |
项目管理员 | 除了读写权限,同时拥有用户管理/镜像扫描等管理权限 |
- 切换用户登录Harbor