1.介绍

Harbor 是由 VMware 公司中国团队为企业用户设计的 Registry server 开源项目,包括了权限管理(RBAC)、LDAP、审计、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。

作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。Harbor 支持安装在多个 Registry 节点的镜像资源复制,镜像全部保存在私有 Registry 中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor 也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

  • 基于角色的访问控制 - 用户与 Docker 镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。

  • 镜像复制 - 镜像可以在多个 Registry 实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。

  • 图形化用户界面 - 用户可以通过浏览器来浏览,检索当前 Docker 镜像仓库,管理项目和命名空间。

  • AD/LDAP 支持 - Harbor 可以集成企业内部已有的 AD/LDAP,用于鉴权认证管理。

  • 审计管理 - 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。

  • 国际化 - 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。

  • RESTful API - RESTful API 提供给管理员对于 Harbor 更多的操控, 使得与其它管理软件集成变得更容易。

  • 部署简单 - 提供在线和离线两种安装工具, 也可以安装到 vSphere 平台(OVA 方式)虚拟设备。

2.环境准备

需要提前安装 docker 、docker-compose 环境。

docker 安装参考地址:https://www.cnblogs.com/ming-blogs/p/10677404.html

docker-compose 安装参考:https://www.cnblogs.com/ming-blogs/p/13299179.html

3.Harbor 部署

wget https://github.com/goharbor/harbor/releases/download/v1.10.4-rc1/harbor-offline-installer-v1.10.4-rc1.tgz
tar -zxvf
harbor-offline-installer-v1.10.4-rc1.tgz -C /usr/local/harbor

下载并解压 harbor 到 /usr/local/harbor 目录

修改 harbor.yml 

docker 搭建 Harbor 仓库

 修改 hostname 为自己部署 harbor 机器的 ip,port 为访问时的端口,默认为80。

harbor_admin_password: Harbor123 为 登录 harbor 的用户密码可以自己进行设置。默认用户名为 admin。

修改过配置文件之后,执行如下操作,会重新加载配置文件和下载所需要的镜像文件。

docker 搭建 Harbor 仓库

  查询运行的镜像,默认会启动相关的镜像

docker 搭建 Harbor 仓库

4.登录 harbor

docker 搭建 Harbor 仓库

 5.新建项目

docker 搭建 Harbor 仓库

 docker 搭建 Harbor 仓库

6.镜像仓库配置

上传镜像需要先登录并且配置仓库地址,端口号默认80 可以省略

[root@localhost ~]# cat /etc/docker/daemon.json
{
  "insecure-registries": ["192.168.243.128"],
  "registry-mirrors": ["https://yy28v837.mirror.aliyuncs.com"]
}

docker 搭建 Harbor 仓库

 该例子现实我已经登录成功了。

7.上传镜像

 1 [root@localhost ~]# docker images
 2 REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
 3 jenkinsci/blueocean   latest              69b6d837d67b        8 days ago          562MB
 4 docker-demo1          v2                  c0c9606589ab        13 days ago         660MB
 5 [root@localhost ~]# docker tag docker-demo1:v2 192.168.243.128/tomcat/docker-demo1:v2
 6 [root@localhost ~]# docker images
 7 REPOSITORY                            TAG                 IMAGE ID            CREATED             SIZE
 8 jenkinsci/blueocean                   latest              69b6d837d67b        8 days ago          562MB
 9 docker-demo1                          v2                  c0c9606589ab        13 days ago         660MB
10 192.168.243.128/tomcat/docker-demo1   v2                  c0c9606589ab        13 days ago         660MB
11 [root@localhost ~]# docker push 192.168.243.128/tomcat/docker-demo1
12 The push refers to repository [192.168.243.128/tomcat/docker-demo1]
13 7888ed9320ad: Pushed
14 v2: digest: sha256:25f985faab246e50d271eb3734bcfcdb49dac31f599d511e05a19524bff89f4c size: 529
15 [root@localhost ~]#

8.查询上传的镜像文件

docker 搭建 Harbor 仓库

9.拉取上传到 harbor 的镜像文件

拉取镜像的机器 需要配置 harbor 仓库地址,否则拉取报错,如下。

[root@localhost ~]# docker pull 192.168.243.128/tomcat/docker-demo1:v2
Error response from daemon: Get https://192.168.243.128/v2/: dial tcp 192.168.243.128:443: connect: connection refused

因为在 harbor 创建 tomcat 项目的时候,设置了项目权限,所以只要登陆之后才可以拉取镜像,如果未设置权限则不用登陆就可以拉取镜像。报错信息如下,

[root@localhost ~]# docker pull 192.168.243.128/tomcat/docker-demo1:v2
Error response from daemon: pull access denied for 192.168.243.128/tomcat/docker-demo1, repository does not exist or may require 'docker login'

拉取成功如下所示,

docker 搭建 Harbor 仓库

  到此为止,搭建 harbor 以及上传镜像以及拉取镜像都已经完成了。

10.用户管理

项目中新增用户,如下所示。项目中新增用户之前需要在用户管理中先新增用户,否则项目中无法新增用户。

docker 搭建 Harbor 仓库

 项目中新增用户成功之后,该用户可以在该项目中上传、拉取镜像操作,否则无法操作。

 

 

Harbor 官网:https://goharbor.io/

Harbor github:https://github.com/goharbor/harbor

相关文章: