美文网首页dibo
Docker之私有镜像仓库Harbor搭建

Docker之私有镜像仓库Harbor搭建

作者: 左舷的风 | 来源:发表于2020-01-14 19:21 被阅读0次

    Docker离不开可靠的镜像管理,官方默认的DockHub,虽然Docker官方也提供了公共的镜像仓库Registry,但是功能略显简单。

    Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。官网在此

    1. 系统环境(harbor需要docker-compose):

    #docker version
    docker version 19.03.1
    #docker-compose version
    docker-compose version 1.18.0
    
    #harbor版本:
    v1.9.4
    

    2. 下载安装包:

    官方安装文档地址:https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md

    harbor安装分为离线和在线安装,本次使用的是离线安装

    安装包下载地址: https://github.com/goharbor/harbor/releases

    wget https://github.com/goharbor/harbor/releases/download/v1.9.4/harbor-offline-installer-v1.9.4.tgz
    
    tar zxvf harbor-offline-installer-v1.9.4.tgz
    cd harbor/
    

    3. 修改配置文件harbor.yml:

    cat harbor.yml  | grep -v '#\|^$'
    #####
    hostname: 10.1.129.123  #需要修改为对外访问的地址
    http:
      port: 81                          #需要修改为对外访问的端口
    harbor_admin_password: Harbor12345
    database:
      password: root123
      max_idle_conns: 50
      max_open_conns: 100
    data_volume: /data/harbor_registry  #可以修改为指定的目录
    clair:
      updaters_interval: 12
    jobservice:
      max_job_workers: 10
    notification:
      webhook_job_max_retry: 10
    chart:
      absolute_url: disabled
    log:
      level: info
      local:
        rotate_count: 50
        rotate_size: 200M
        location: /var/log/harbor
    _version: 1.9.0
    proxy:
      http_proxy:
      https_proxy:
      no_proxy:
      components:
        - core
        - jobservice
        - clair
    

    4. 执行安装:

    ./install.sh --with-clair  #加--with-clair可以检查镜像的安全漏洞
    

    安装完后执行docker-compose ps查看启动的容器:

    [root@node03 harbor]#docker-compose ps
    
          Name                     Command               State             Ports          
    --------------------------------------------------------------------------------------
    clair               /docker-entrypoint.sh            Up      6060/tcp, 6061/tcp       
    harbor-core         /harbor/harbor_core              Up                               
    harbor-db           /docker-entrypoint.sh            Up      5432/tcp                 
    harbor-jobservice   /harbor/harbor_jobservice  ...   Up                               
    harbor-log          /bin/sh -c /usr/local/bin/ ...   Up      127.0.0.1:1514->10514/tcp
    harbor-portal       nginx -g daemon off;             Up      8080/tcp                 
    nginx               nginx -g daemon off;             Up      0.0.0.0:81->8080/tcp     
    redis               redis-server /etc/redis.conf     Up      6379/tcp                 
    registry            /entrypoint.sh /etc/regist ...   Up      5000/tcp                 
    registryctl         /harbor/start.sh                 Up           
    

    Harbor启动停止方法(必须在解压后的安装目录运行):

    docker-compose stop
    docker-compose start
    docker-compose restart
    

    5. 页面配置:

    访问之前在harbor.yml中配置的hostname+port(用户名密码为harbor.yml中配置的,默认为admin/Harbor12345)



    在此新建一个仓库base_image测试用:


    6. 配置docker信任仓库:
    因为docker默认使用https连接镜像仓库,而此处harbor配置使用的是http,所以需要配置docker节点文件信任此仓库(所有需要使用仓库的主机都需要操作一步这个)

    vim /etc/docker/daemon.json
    ######
    {
        "insecure-registries": ["10.1.129.123:81"]
    }
    

    第一次push之前需要使用docker login 登陆验证下(所有需要使用仓库的主机都需要操作一步这个):

    docker login 10.1.129.123:81
    ######
    Username: admin
    Password: 
    
    Login Succeeded
    

    相关用户名密码等会存储在/root/.docker/config.json文件里

    6. 测试推送镜像到harbor:

    docker image ls #找个镜像
    docker image tag python:3.5.6 10.1.129.123:81/base_image/python:3.5.6   #改tag
    docker push 10.1.129.123:81/base_image/python:3.5.6 #push镜像到harbor
    

    7. 测试拉取harbor镜像:

    docker image rm 10.1.129.123:81/base_image/python:3.5.6 #首先删除之前的镜像
    docker pull 10.1.129.123:81/base_image/python:3.5.6         #测试再次拉取
    

    至此,Harbor私有镜像仓库搭建完成,尽情体验吧!

    相关文章

      网友评论

        本文标题:Docker之私有镜像仓库Harbor搭建

        本文链接:https://www.haomeiwen.com/subject/xswaactx.html