zoukankan      html  css  js  c++  java
  • docker进阶-搭建私有企业级镜像仓库Harbor

    enter image description here

    为什么要搭建私有镜像仓库

      对于一个刚刚接触Docker的人来说,官方的Docker hub是用于管理公共镜像。既然官方提供了镜像仓库我们为什么还要去自己搭建私有仓库呢?虽然也可以托管私有镜像。我们可以非常方便的把我们自己镜像推送上去,但是Docker hub提供的私有仓库个数有限。对于个人来说Docker hub是个不错的选择,但是对于企业来说,相对于安全 ,成本和公司的架构来说搭建自己的私有镜像仓库才是正确的道路。

    什么是Harbor?为什么要选择Harbor

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

    • 基于角色的访问控制 - 用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。
    • 镜像复制 - 镜像可以在多个Registry实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。
    • 图形化用户界面 - 用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间。
    • AD/LDAP 支持 - Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理。
    • 审计管理 - 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
    • 国际化 - 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。
    • RESTful API - RESTful API 提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易。
    • 部署简单 - 提供在线和离线两种安装工具, 也可以安装到vSphere平台(OVA方式)虚拟设备。
      这就是官网原话。完美解释了什么是Harbor?为什么要选择Harbor。上面解释那么多的Harbor, 现在我们来开始安装吧。

    Harbor安装

      要安装Harbor,有以下几个先决条件:
        Python版本大于或者等于2.7
        
    Docker engine的版本大于等于1.10
        Docker Compose的版本大于1.6.0

      首先我们需要检查自己服务器是否支持上面3个条件。输入以下代码检查

    #python2.7官网安装页面
    https://www.python.org/downloads/release/python-2711/
    #检查Python版本.Ubuntu 16.04已经集成了python2.7。
    python -V
    #检查Docker的版本
    docker -v
    #Docker Compose安装脚本
    sudo curl -L https://github.com/docker/compose/releases/download/1.6.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    #检查Docker Compose的版
    docker-compose --version
    #如果提示Permission denied。执行以下语句赋权
    sudo chmod +x /usr/local/bin/docker-compose
    

      确保服务器上的软件版本已经满足以上要求之后。我们现在开始安装Harbor。如果不知道怎么安装docker 可以参考我博客之前的文章。传送门

    下载Harbor
    #下载安装包
    wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-offline-installer-v1.1.2.tgz
    #解压
    tar -xzf harbor-offline-installer-v1.1.2.tgz
    cd harbor
    #编辑配置文件
    vi harbor.cfg
    
    配置文件注释参考
    ## Configuration file of Harbor
    
    #设置访问地址,支持IP,域名,主机名,禁止设置127.0.0.1
    hostname = reg.mydomain.com
    
    #访问方式,http或者https
    ui_url_protocol = http
    
    #邮件通知相关设置
    email_server = smtp.mydomain.com
    email_server_port = 25
    email_username = sample_admin@mydomain.com
    email_password = abc
    email_from = admin <sample_admin@mydomain.com>
    email_ssl = false
    
    #用户登录密码
    harbor_admin_password = Harbor12345
    
    #harbor认证模式,默认为db_auth,本地mysql,也可以配置ldap认证 
    auth_mode = db_auth
    
    #ldap认证配置
    ldap_url = ldaps://ldap.mydomain.com
    ldap_basedn = ou=people,dc=mydomain,dc=com
    ldap_uid = uid 
    ldap_scope = 3 
    
    #mysql数据库设置
    db_password = root123
    self_registration = on
    use_compressed_js = on
    max_job_workers = 3 
    token_expiration = 30
    verify_remote_cert = on
    customize_crt = on
    
    #显示的认证及组织信息 
    crt_country = CN
    crt_state = State
    crt_location = CN
    crt_organization = organization
    crt_organizationalunit = organizational unit
    crt_commonname = example.com
    crt_email = example@example.com
    project_creation_restriction = everyone
    
    #SSL证书地址。只有开启https访问才生效
    ssl_cert = /data/cert/server.crt
    ssl_cert_key = /data/cert/server.key
    #############
    
    

      以上按照自己需求修改。如果想开启https模式访问需要自己申请ssl证书。harbor默认监听80端口。如果需要修改端口。请修改目录下的docker-compose.yml文件,
    enter image description here
    修改完成之后。运行

    sudo ./install.sh
    

      进行安装。安装完成之后他会自己启动。这里他会自己下载一些他所需的images。过程有点慢。可以通过阿里云的镜像加速器来加速。阿里云镜像加速器 .打开链接登录之后点击镜像加速。然后你会得到一个专属加速地址。如图
    enter image description here可以根据自己的环境查看文档安装使用。然后等待命令执行结束。
    enter image description here

    开启https

      如果使用http的这里可以跳过,我们把已经申请好的证书文件放到/data/cert 目录下面。然后修改harbor.cfg文件

    enter image description here
      安装成功之后打开之前自己设定的域名或者IP地址。测试地址 。测试用户名:harbor_test,测试密码:Harbor_test123
    enter image description here

    使用harbor

    创建用户

    harbor已经创建成功。现在我们来开始创建一个用户。
    enter image description here

    创建项目

    创建项目,并添加用户
    enter image description here

    上传镜像

      首先使用docker login命令登录:

    #登录
    robin:~ robin$ sudo docker login shepherd618.cn
    Username: admin
    Password: 
    Login Succeeded
    #查看本地镜像
    robin:docker_demo robin$ sudo docker images 
    Password:
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    docker_demo         latest              fdd994bee741        19 seconds ago      283MB
    node                8.9-alpine          406f227b21f5        2 weeks ago         68.1MB
    #给dcoker_demo新增tag
    robin:docker_demo robin$ sudo docker tag docker_demo shepherd618.cn/test/demo
    #push images
    robin:docker_demo robin$ docker push shepherd618.cn/test/demo
    The push refers to repository [shepherd618.cn/test/demo]
    f8387a884f73: Layer already exists 
    d74f9d9e7013: Pushed 
    f846841ed47f: Layer already exists 
    0198944a9875: Layer already exists 
    9dfa40a0da3b: Layer already exists 
    latest: digest: sha256:5b33acc5edf6f48cbd8e7ccd216daa4a7da1ebd4871fbc68bc2517136f1ccf44 size: 1374
    
    

    然后打开harbor,会看到刚刚上传的images和操作日志
    enter image description here
    当我们需要用到这个images的时候可以通过上面给的pull命令下载到本地。到此整个安装过程结束。

  • 相关阅读:
    商贸通帐套隐藏方法
    固定资产打开提示:上年度数据未结转!
    ZOJ 2432 Greatest Common Increasing Subsequence
    POJ 1080 Human Gene Functions
    POJ 1088 滑雪
    POJ 1141 Brackets Sequence
    POJ 1050 To the Max
    HDOJ 1029 Ignatius and the Princess IV
    POJ 2247 Humble Numbers
    HDOJ 1181 变形课
  • 原文地址:https://www.cnblogs.com/pass245939319/p/8542177.html
Copyright © 2011-2022 走看看