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命令下载到本地。到此整个安装过程结束。

  • 相关阅读:
    Beta冲刺 5
    Beta冲刺 4
    Beta冲刺 3
    Beta冲刺 2
    Beta冲刺 1
    项目评测博客
    Beta冲刺前准备
    Alpha 冲刺11——总结
    Alpha冲刺10
    Alpha冲刺9
  • 原文地址:https://www.cnblogs.com/pass245939319/p/8542177.html
Copyright © 2011-2022 走看看