美文网首页
搭建harbor仓库

搭建harbor仓库

作者: kevinfaith | 来源:发表于2018-11-28 16:51 被阅读24次

    学习docker的途中,怎么能少了牛逼的harbor呢,先说说harbor是什么吧,harbor: Harbor 是一个企业级的 Docker Registry,可以实现 images 的私有存储和日志统计权限控制等功能,并支持创建多项目(Harbor 提出的概念),基于官方 Registry V2 实现。 通过地址:https://github.com/vmware/harbor/releases 可以下载最新的版本。 官方提供了两种版本:在线版和离线版。

    准备:

    Python、Docker和Docker Compose
    python需要2.7以上的版本
    然后docker我用的是docker18.06.1-ce
    Docker Compose-1.22.0
    安装方式我之前的博客里有提到,也可以百度自行搜索

    安装:

    Harbor 可以通过以下两种方式之一安装:

    • 在线安装程序:安装程序从Docker集线器下载Harbour的映像。因此,安装程序的尺寸非常小。

    • 脱机安装程序:当主机没有Internet连接时,请使用此安装程序。安装程序包含预制图像,因此其大小较大。
      然后Harbor最新的版本是1.6.2
      然后从官方的github地址下载,速度感人,我挂了梯子速度也很慢,然后我就找了一个谷歌的1.5.1的安装包地址。
      具体安装步骤如下

    • 下载安装程序;

    • 配置ports.cfg ;

    • 运行install.sh来安装和启动Harbor;

    下载

    ➜  wget https://storage.googleapis.com/harbor-releases/harbor-online-installer-v1.5.1.tgz
    ➜  tar xvf harbor-online-installer-v1.5.1.tgz
    

    配置Harbor
    配置参数位于文件harbor.cfg中。
    配置文件分为必选参数和可选参数,字面意思
    必选参数:

    • hostname:目标主机的主机名,用于访问UI和注册表服务。它应该是目标机器的IP地址或完全限定域名(FQDN),例如192.168.1.10reg.yourdomain.com。不要使用localhost127.0.0.1为主机名 – 注册表服务需要外部客户端访问!
    • ui_url_protocol:(http或https。默认为http)用于访问UI和令牌/通知服务的协议。如果启用公证,则此参数必须为https。默认情况下,这是http。要设置https协议,请参阅使用HTTPS访问harbor
    • db_password:用于db_auth的MySQL数据库的根密码。更改此密码以供任何生产用途!
    • max_job_workers:(默认值为3)作业服务中的最大复制工作数。对于每个映像复制作业,工作程序将存储库的所有标签同步到远程目标。增加此数字允许系统中更多的并发复制作业。但是,由于每个工作人员都会消耗一定数量的网络/ CPU / IO资源,请根据主机硬件资源选择该属性的值。
    • customize_crt:(打开或关闭,默认为打开)当此属性打开时,准备脚本将为注册表令牌的生成/验证创建私钥和根证书。当密钥和根证书由外部源提供时,将此属性设置为off。有关详细信息,请参阅自定义密钥和harbor令牌服务证书
    • ssl_cert:SSL证书的路径,仅当协议设置为https时才应用
    • ssl_cert_key:SSL密钥的路径,仅当协议设置为https时才应用
    • secretkey_path:用于在复制策略中加密或解密远程注册表的密码的密钥路径。

    可选参数:

    • 电子邮件设置:Harbor需要这些参数才能向用户发送“密码重设”电子邮件,只有在需要该功能时才需要这些参数。另外,请注意,在默认情况下SSL连接时没有启用-如果你的SMTP服务器需要SSL,但不支持STARTTLS,那么你应该通过设置启用SSL email_ssl = TRUE。
    • 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:管理员的初始密码。该密码仅在Harbor 第一次启动时生效。之后,此设置将被忽略,并且应在UI中设置管理员的密码。请注意,默认用户名/密码为admin / Harbor12345。
    • auth_mode:使用的身份验证类型。默认情况下,它是db_auth,即凭据存储在数据库中。对于LDAP身份验证,请将其设置为ldap_auth。重要提示:从现有的Harbor 实例升级时,必须确保auth_modeharbor.cfg在启动新版本的Harbor之前是一样的。否则,升级后用户可能无法登录。
    • ldap_url:LDAP端点URL(例如ldaps://ldap.mydomain.com)。 仅当auth_mode设置为ldap_auth时才使用。
    • ldap_searchdn:具有搜索LDAP / AD服务器权限的用户的DN(例如uid=admin,ou=people,dc=mydomain,dc=com)。
    • ldap_search_pwd:由ldap_searchdn指定的用户的密码。
    • LDAP_BASEDN:基本DN查找用户,如ou=people,dc=mydomain,dc=com。 仅当auth_mode设置为ldap_auth时才使用。
    • LDAP_FILTER:用于查找用户,例如,搜索过滤器(objectClass=person)
    • ldap_uid:用于在LDAP搜索期间匹配用户的属性,它可以是uid,cn,电子邮件或其他属性。
    • ldap_scope:搜索用户的范围,1-LDAP_SCOPE_BASE,2-LDAP_SCOPE_ONELEVEL,3-LDAP_SCOPE_SUBTREE。默认值为3。
    • self_registration:(开或关,默认为开)启用/禁用用户注册自己的能力。禁用时,只能由管理员用户创建新用户,只有管理员用户才能在海港创建新用户。 注意:当auth_mode设置为ldap_auth时,自注册功能始终被禁用,并且该标志被忽略。
    • token_expiration:令牌服务创建的令牌的到期时间(以分钟为单位),默认值为30分钟。
    • project_creation_restriction:用于控制用户有权创建项目的标志。默认情况下,每个人都可以创建一个项目,设置为“adminonly”,以便只有admin才能创建项目。
    • verify_remote_cert:(上或关闭,默认为上)该标志,判断是否验证SSL / TLS证书时码头与远程注册表实例通信。将此属性设置为off可绕过SSL / TLS验证,SSL / TLS验证通常在远程实例具有自签名或不受信任的证书时使用。

    修改完配置文件以后

    ➜  sudo ./prepare
    ➜  docker-compose up -d
    

    也可以直接

    ➜  sudo ./install
    

    然后等一会就完成了
    如果你80端口已经被占用了,想换一个,修改docker-compose.yml里proxy的端口映射,然后执行

    ➜  docker-compose down -v
    ➜  docker-compose up -d 
    

    然后浏览器打开http://ip:port
    登录,默认管理账号是admin/Harbor12345(配置文件的harbor_admin_password:)

    使用

    首先在harbor上新建一个项目text,之后在本地的docker配置文件下面修改

    ➜  vim /etc/docker/daemon.json
    {
      "registry-mirrors": ["https://vw0w4qo0.mirror.aliyuncs.com"],
      "insecure-registries": ["192.168.31.57"]  //添加这一行,地址是harbor主机的ip
    }
    

    接着重启服务

    ➜  systemctl restart docker
    
    ➜  docker login 192.168.31.150
    Username: admin
    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
    

    给镜像打tag

    ➜  docker tag zuolan/resume:latest 192.168.31.150/test/zuoloan/resume:0.0.1
    

    其中test是项目名称,后面的是介绍,作者/内容:版本

    上传

    ➜  docker push 192.168.31.150/test/zuoloan/resume:0.0.1
    

    拉取镜像也是一样

    ➜  docker pull 192.168.31.150/test/zuoloan/resume:0.0.1
    

    相关文章

      网友评论

          本文标题:搭建harbor仓库

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