docker 搭建 Harbor 仓库

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 

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

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

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

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

4.登录 harbor

 5.新建项目

 

6.镜像仓库配置

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

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

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

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.查询上传的镜像文件

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'

拉取成功如下所示,

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

10.用户管理

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

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

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

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

原文地址:https://www.cnblogs.com/ming-blogs/p/13299070.html