zoukankan      html  css  js  c++  java
  • 十二、安装企业级私有仓库harbor

    一、harbor介绍

    Harbor gitlab项目地址:https://github.com/goharbor/harbor

    Harbor是一个开源的可信云本机注册表项目,用于存储,签名和扫描内容。Harbor通过添加用户通常需要的功能(如安全性,身份和管理)来扩展开源Docker Distribution。使注册表更接近构建和运行环境可以提高图像传输效率。Harbor支持在注册表之间复制映像,还提供高级安全功能,如用户管理,访问控制和活动审计。

    Harbour由Cloud Native Computing Foundation(CNCF)托管。如果您是一个希望帮助塑造云原生技术发展的组织,请考虑加入CNCF。有关谁参与以及Harbour如何扮演角色的详细信息,请阅读CNCF 公告。

    二、Harbor 特征

    云本机注册表:Harbour 支持容器映像和Helm图表,可用作云本机环境(如容器运行时和业务流程平台)的注册表。

    基于角色的访问控制:用户和存储库通过“项目”进行组织,用户可以对项目下的图像拥有不同的权限。

    基于策略的映像复制:可以基于具有多个过滤器(存储库,标记和标签)的策略在多个注册表实例之间复制(同步)映像。如果遇到任何错误,Harbor将自动重试进行复制。非常适合负载平衡,高可用性,多数据中心,混合和多云场景。

    漏洞扫描:Harbor定期扫描图像并警告用户漏洞。

    LDAP / AD支持:Harbor与现有企业LDAP / AD集成以进行用户身份验证和管理,并支持将LDAP组导入Harbor并为其分配适当的项目角色。

    图像删除和垃圾收集:可以删除图像,并可以回收它们的空间。

    公证:可以确保图像的真实性。

    图形用户门户:用户可以轻松浏览,搜索存储库和管理项目。

    审计:跟踪存储库的所有操作。

    RESTful API:适用于大多数管理操作的RESTful API,易于与外部系统集成。

    易于部署:提供在线和离线安装程序。

    三、Harbor的安装

    实验环境:

    harbor仓库: inode2:192.168.32.102   最低4G内存
    客户端    : inode3:192.168.32.103

    在inode2上部署harbor

    第一步:安装docker和docker-compose

     
    yum install -y docker-ce
    yum install -y docker-compose

    第二步:下载harbor-offline-installer-v1.8.6.tgz

    wget https://gitlab.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.6.tgz

    第三步:上传到/server/tools,并解压

    mkdir -p /server/tools
    mv harbor-offline-installer-v1.8.6.tgz /server/tools
    tar -xf harbor-offline-installer-v1.8.6.tgz

    第四步:修改harbor.yml/harbor.cfg配置文件

     
    cd harbor
    
    hostname = 192.168.32.102
    
    harbor_admin_password = 123456
    
    http:
      port: 180
    
    data_volume: /data/harbor
    #数据目录
    
    location: /data/harbor/logs
    #日志目录

    第五步:执行install.sh

     
    ./install.sh

    第六步:检查docker-compose ps全up就安装完成

    [root@inode2 harbor]# docker-compose ps
      Name                     Command               State             Ports          
    harbor-core         /harbor/start.sh                 Up                               
    harbor-db           /entrypoint.sh postgres          Up      5432/tcp                 
    harbor-jobservice   /harbor/start.sh                 Up                               
    harbor-log          /bin/sh -c /usr/local/bin/ ...   Up      127.0.0.1:1514->10514/tcp
    harbor-portal       nginx -g daemon off;             Up      80/tcp                   
    nginx               nginx -g daemon off;             Up      0.0.0.0:80->80/tcp       
    redis               docker-entrypoint.sh redis ...   Up      6379/tcp                 
    registry            /entrypoint.sh /etc/regist ...   Up      5000/tcp                 
    registryctl         /harbor/start.sh                 Up                

    第七步:访问验证:

    Harbor默认用户名密码为:admin/12345 生产环境必须修改

    四、harbor的使用

    在harbor的页面上配置相关信息

    1、用户管理---创建用户

    user:ywx
    passwd:YWXywx123

    2、项目---新建项目

     
    项目名称:kingseal
    不公开

    在客户端inode3配置/etc/docker/daemon.json,修改harbor的仓库信息

    vim /etc/docker/daemon.json

    {
     "registry-mirrors": ["https://gah3bzo6.mirror.aliyuncs.com"],
     "insecure-registries": ["192.168.32.102:80"]
    }
    
    [root@inode3 ~]# systemctl daemon-reload 
    [root@inode3 ~]# systemctl restart docker

    上传镜像

    1、给镜像文件打标签

    [root@inode3 ~]# docker tag nginx:latest 192.168.32.102:80/kingseal/nginx:latest
    
    [root@inode3 ~]# docker images
    REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
     192.168.32.102:80/kingseal/nginx   latest              a1523e859360        10 days ago         127MB
     nginx                       latest              a1523e859360        10 days ago         127MB

    2、登录harbor仓库

     
    [root@inode3 ~]# docker login 192.168.32.102:80
    Username: ywx
    Password: 
    WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
    Configure a credential helper to remove this warning. See
    https://docs.docker.com/engine/reference/commandline/login/#credentials-store
    
    Login Succeeded

    3、上传镜像

    [root@inode3 ~]#dockers push 192.168.32.102:80/kingseal/nginx:latest
    [root@inode3 ~]# docker push 192.168.32.102:80/kingseal/nginx:latest
    The push refers to repository [192.168.32.102:80/kingseal/nginx]
    318be7aea8fc: Pushed 
    fe08d5d042ab: Pushed 
    f2cb0ecef392: Pushed 
    latest: digest: sha256:4a50ed86d8c86e35f530d4a168173677a192177eed14146fbb5728b1b3a2d4de size: 948
    
    #不加tag,就把192.168.32.102:80/kingseal/nginx所有标签全部上传

    在harbor页面查看上传的镜像信息

    4、下载镜像

    [root@inode3 ~]# docker login 192.168.32.102:80
    
    [root@inode3 ~]# docker pull 192.168.32.102:80/kingseal/nginx:lates
     
  • 相关阅读:
    201621123037 《Java程序设计》第9周学习总结
    201621123037 《Java程序设计》第8周学习总结
    201621123037 《Java程序设计》第7周学习总结
    201621123037 《Java程序设计》第6周学习总结
    201621123037 《Java学习设计》 第五周学习总结
    201621123037 《Java程序设计》第4周学习总结
    201621123037 《Java程序设计》第3周学习总结
    myeclipse报Unhandld event loop Exception怎么解决
    Ajax 完整教程
    在JSP程序中我用新图片替换掉了原图片(名字,格式相同),为什么打开网页显示的还是以前的图片呢
  • 原文地址:https://www.cnblogs.com/yaokaka/p/14186368.html
Copyright © 2011-2022 走看看