Harbor简介

Harbor (港口,港湾)是一个用于存储和分发Docker镜像的企业级Registry服务器。
除了Harbor这个私有镜像仓库之外,还有Docker官方提供的Registry。相对Registry,Harbor具有很多优势:

  1. 提供分层传输机制,优化网络传输 Docker镜像是是分层的,而如果每次传输都使用全量文件(所以用FTP的方式并不适合),显然不经济。必须提供识别分层传输的机制,以层的UUID为标识,确定传输的对象。
  2. 提供WEB界面,优化用户体验 只用镜像的名字来进行上传下载显然很不方便,需要有一个用户界面可以支持登陆、搜索功能,包括区分公有、私有镜像。
  3. 支持水平扩展集群 当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分解。
  4. 良好的安全机制 企业中的开发团队有很多不同的职位,对于不同的职位人员,分配不同的权限,具有更好的安全性。

Harbor安装

  1. 先安装Docker并启动Docker;(docker的安装这里不做过多赘述)。
  2. 先安装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
  1. 给docker-compose添加执行权限;
sudo chmod +x /usr/local/bin/docker-compose
  • 1
  1. 查看docker-compose是否安装成功;
docker-compose -version
  • 1

Registry和harbor哪个好 harbor和port区别_服务器

  1. 下载Harbor的压缩包;
  2. 上传压缩包到虚拟机,并解压;
tar -zxvf harbor-offline-installer-v1.9.2.tgz
  • 1

Registry和harbor哪个好 harbor和port区别_docker_02

  1. 修改Harbor的配置(harbor.yml);
    7.1. 修改主机地址:hostname: 192.168.56.11;
    7.2. 修改端口(默认端口80):port: 85;
  2. 启动之前需要使用./prepare命令进行一些预置工作,下载相关依赖;
    8.1. 此时需要开启docker服务,不然会报错;
    8.2. 这个过程可能有点长,需要耐心等待;
/prepare
  • 1
  1. 准备工作完成后,使用./install.sh进行Harbor的安装;
    9.1. 这个过程会持续一段时间,耐心等待;
./install.sh
  • 1

Registry和harbor哪个好 harbor和port区别_Registry和harbor哪个好_03

  1. 访问http://192.168.56.11:85/
    10.1. 如果访问不到,可以看一下防火墙是否关闭,或者端口是否开放;

Registry和harbor哪个好 harbor和port区别_docker_04

  1. 登录
    11.1. 默认登录名:admin;
    11.2. 默认登录密码:Harbor12345;
    11.3. 具体可以查看harbor.yml;

Registry和harbor哪个好 harbor和port区别_Registry和harbor哪个好_05

补充(启动Harbor)

docker-compose up -d 启动
docker-compose start 启动
docker-compose stop 停止
docker-compose restart 重新启动

在Harbor创建用户和项目

  1. 创建项目(Harbor的项目分为公开和私有的);
    1.1. 公开项目:所有用户都可以访问,通常存放公共的镜像,默认有一个library公开项目;
    1.2. 私有项目:只有授权用户才可以访问,通常存放项目本身的镜像;

Registry和harbor哪个好 harbor和port区别_Docker_06


Registry和harbor哪个好 harbor和port区别_docker_07

  1. 创建用户;

Registry和harbor哪个好 harbor和port区别_服务器_08


Registry和harbor哪个好 harbor和port区别_docker_09

  1. 给私有项目分配用户;

角色

权限说明

访客

对于指定项目拥有只读权限

开发人员

对于指定项目拥有读写权限

维护人员

对于指定项目拥有读写权限,创建 Webhooks

项目管理员

除了读写权限,同时拥有用户管理/镜像扫描等管理权限

Registry和harbor哪个好 harbor和port区别_docker_10


Registry和harbor哪个好 harbor和port区别_Docker_11

  1. 切换用户登录Harbor

Registry和harbor哪个好 harbor和port区别_Registry和harbor哪个好_12