• 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

  • 相关阅读:
    Gson的使用
    通过java解析域名获得IP地址
    SQL竖列变横列
    jQuery判断checkbox是否选
    mysql数据添加时如果这条数据存在进行修改
    localStorage使用总结
    如何在一个数组中求出任意几个数的和等于给定数
    外汇EA(LRY_FX_Robot_V5)
    爱奇艺、腾讯、优酷、搜狐、芒果、乐视、PPTV、音悦台等VIP视频免费观看
    Failed to sync Gradle project 'XX'错误解决
  • 原文地址:https://www.cnblogs.com/ming-blogs/p/13299070.html
Copyright © 2020-2023  润新知