• docker 仓库-Harbor


    docker 仓库之分布式 Harbor:
    Harbor 是一个用于存储和分发docker镜像的企业级Registry服务器,由于Vmware 开源,其通过添加一些企业必须的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。 作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry镜像构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复杂,镜像全部保存在私有Registry中,确保数据和知识产权在公司内部网络管控,另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等,官网地址:https://vmware.github.io/harbor/cn/,官方 github 地址:
    https://github.com/vmware/harbor
     
    Harbor 功能介绍:
    基于角色的访问控制:用户与docker镜像仓库通过"项目" 进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不通的权限。
    镜像复制:镜像可以在多个Registry实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。
    图形化用户界面:用户可以通过浏览器来流量,检索当前docker镜像仓库,管理项目和命名空间。
    AD/LDAP 支:Harbor 可以集成企业内部已有的AD/LDAP,用于鉴权认证管理。审计管理:所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。国际化:已拥有英文、中文、德文、日文和俄文的本机化版本。更多的语言将会添加进来。
    RESTful API - RESTful API :提供给管理员对于 Harbor 更多的操控, 使得与其它管 理软件集成变得更容易。 部署简单:提供在线和离线两种安装工具, 也可以安装到 vSphere 平台(OVA 方 式)虚拟设备。
     
    安装Harbor :
    首先安装docker服务:
    yum install -y yum-utils device-mapper-persistent-data lvm2
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    选择版本进行安装,不选择版本默认安装最新版本的docker 19.03
    yum install -y docker-ce-18.06.2.ce
    
    // 启动docker(启动后会自动生成/etc/docker目录,否则需要手动创建)
    systemctl start docker && systemctl enable docker
    yum makecache
    下载 Harbor安装包:
    cd /usr/local/src
    wget https://github.com/vmware/harbor/releases/download/v1.2.2/harbor-offlineinstaller-v1.2.2.tgz 
    解压及安装全过程:
     tar xf harbor-offline-installer-v1.6.3.tgz 
     #ln -sv /usr/local/src/harbor /usr/local/harbor
     mv harbor /usr/local/
     cd harbor
    将harbor文件中的hostname段改写为自己的本机IP(也就是harbor服务IP)

    安装docker-compose:
    yum install epel-release -y
    yum install python-pip -y
    yum install docker-compose -y
    rpm -qa|grep docker-compose
    docker-compose version
    
    #docker 默认是https加密方式访问,所有加上以下内容:
    cat > /etc/docker/daemon.json <<EOF
    {
    "insecure-registries":["192.168.1.25"]
    }
    EOF
    创建https证书以及配置相关目录权限(可选做)

    mkdir /data/cert
    #生成密钥key
    openssl genrsa -des3 -out server.key 2048
    #创建证书请求,server.csr
    openssl req -new -key server.key -out server.csr
    #备份以下密钥
    cp server.key server.key.org
    #转换成证书,退出密码
    openssl rsa -in server.key.org -out server.key
    #证书请求签名
    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
    
    chmod -R 777 /data/cert

     

     

    安装:
    ./install
    启动:
    docker-compose start

    到这里已经安装完成了harbor, 登录测试: 192.168.1.x默认端口80访问,用户:admin 密码:Harbor12345 默认harbor配置文件中设置的密码,可以自己改写:

     

    harbor.cfg配置文件详解:

    原来没注释的参数不要注释掉,否则下边一步不通过。留默认即可 
    hostname:配置主机名称,不可以设置127.0.0.1,localhost这样的主机名,可以是IP或者域名 
    ui_url_protocol:指定使用HTTP协议还是HTTPS协议 
    Email settings:邮箱设置,option配置,只在首次启动生效,可以登陆UI后修改 
    harbor_admin_password:设置管理员的初始密码,只在第一次登录时使用 
    auth_mode:用户认证模式,默认是db_auth,也可以使用ldap_auth验证。 
    db_password:使用db需要指定连接数据库的密码 
    self_registration:是否允许自行注册用户,默认是on,新版本可以在图形界面中修改。 
    max_job_workers:最大工作数,默认是10个 
    customize_crt:是否为token生成证书,默认为on 
    ssl_cert:nginx cert与key文件的路径, 只有采用https协议是才有意义 
    ssl_cert:nginx cert与key文件的路径, 只有采用https协议是才有意义 
    secretkey_path:The path of secretkey storage 
    admiral_url:Admiral's url, comment this attribute, or set its value to NA when Harbor is standalone 
    clair_db_password:未启用calir服务,但解压目录下的"./prepare"文件中要检查以下相关参数配置,不能注释,否则环境准备检查不能通过,报"ConfigParser.NoOptionError: No option u'clair_db_password' in section: u'configuration' "相关错误;或者在"./prepare"中注释相关检查与定义,但需要注意,文件中的关联太多,推荐修改"harbor.cfg"文件即可 
    ldap_url:ladp相关设置,如未采用ldap认证,但解压目录下的"./prepare"文件中要检查以下相关参数配置,不能注释,否则环境准备检查不能通过,报"ConfigParser.NoOptionError: No option u'ldap_timeout' in section: u'configuration' "相关错误;或者在"./prepare"中注释相关检查与定义,但需要注意,文件中的关联太多,推荐修改"harbor.cfg"文件即可 
    ldap_scope: 
    self_registration:默认开启自注册,off为关闭 
    token_expiration:token有效时间,默认30minutes 
    project_creation_restriction:创建项目权限控制,默认是"everyone"(所有人),可设置为"adminonly"(管理员) 
    verify_remote_cert:与远程registry通信时是否采用验证ssl 
    其他使用默认值
    安装Harbor 时报错解决 :

     

    上传下载镜像:

    cat > /etc/docker/daemon.json <<EOF
    {
    "insecure-registries":["192.168.1.25"]
    }
    EOF
    
    尝试登录:
    [root@8s-etcd harbor]# docker login 192.168.1.25
    Username: admin
    Password: 
    Login Succeeded
    注意每次push前需docker login 192.168.1.79确认是否已经登录了私有仓库,
    push后需登出私有仓库。
    如果push到公共项目必须登录admin账号才可以
    
    上传镜像:
    docker tag  6e30b06a90d3  192.168.1.25/xxx/tomcat-bbs
    docker push 192.168.1.25/xxx/tomcat-bbs
    下载镜像:
    docker pull 192.168.1.25/xxx/tomcat-bbs
    
    xxx是harbor种创建的项目


  • 相关阅读:
    ES6, CommonJS, AMD, CMD,UMD模块化规范介绍及使用
    前端项目开发框架选型需考虑的4个方面
    初识webSocket及其使用
    动态组件 —— 2种方式实现动态组件的切换
    mac下anaconda安装新包
    新版docker设置国内镜像
    记一次解决Original error: UiAutomator quit before it successfully launched
    linux clion cmakelisits undefined reference 未定义引用
    苹果设备插入PC不能识别问题解决办法
    用Cucumber理解BDD行为驱动开发
  • 原文地址:https://www.cnblogs.com/fengyuanfei/p/13798713.html
Copyright © 2020-2023  润新知