美文网首页
docker安装配置Harbor

docker安装配置Harbor

作者: 杨家小七 | 来源:发表于2018-09-26 18:08 被阅读111次

    此文档需要在docker安装完成之后操作

    安装docker-compose

    curl方式

        curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -       m` -o /usr/local/bin/docker-compose
        chmod +x /usr/local/bin/docker-compose
        docker-compose -v
    

    python-pip安装

    • 安装附加包

       yum -y install epel-release
      
    • 安装pip

        yum -y install python-pip
      
    • 更新pip

        pip install --upgrade pip
      
    • 安装docker-compose

        pip  install docker-compose
      
    • 执行pip install docker-compose时可能会报一下错误导致安装失败

      报错:Cannot uninstall ‘requests’. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

    • 解决办法:

        pip  install docker-compose --ignore-install requests
      
    • 查看版本信息

        docker-compose --version
      

    安装Harbor

    官网下载地址:https://github.com/goharbor/harbor/releases

    下载Harbor安装文件

    • 在线安装:

        $ wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-online-installer-v1.1.2.tgz
        $ tar xvf harbor-online-installer-v1.1.2.tgz
      
    • 离线安装:

        $ wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-offline-installer-v1.1.2.tgz
        $ tar xvf harbor-offline-installer-v1.1.2.tgz
      

    配置Harbor

    解压缩后,目录下会生成harbor.cfg文件

        ## Configuration file of Harbor
    
        # hostname设置访问地址,可以使用ip、域名,不可以设置为127.0.0.1或localhost
        hostname = 172.16.77.71
    
        # 访问协议,默认是http,也可以设置https,如果设置https,则nginx ssl需要设置on
        ui_url_protocol = http
    
        # mysql数据库root用户默认密码root123,实际使用时修改下
        db_password = root123
    
        max_job_workers = 3 
        customize_crt = on
        ssl_cert = /data/cert/server.crt
        ssl_cert_key = /data/cert/server.key
        secretkey_path = /data
        admiral_url = NA
    
        # 邮件设置,发送重置密码邮件时使用
        email_identity = 
        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后,管理员UI登录的密码,默认是Harbor12345
        harbor_admin_password = Harbor12345
    
        # 认证方式,这里支持多种认证方式,如LADP、本次存储、数据库认证。默认是db_auth,mysql数据库认证
        auth_mode = db_auth
    
        # LDAP认证时配置项
        #ldap_url = ldaps://ldap.mydomain.com
        #ldap_searchdn = uid=searchuser,ou=people,dc=mydomain,dc=com
        #ldap_search_pwd = password
        #ldap_basedn = ou=people,dc=mydomain,dc=com
        #ldap_filter = (objectClass=person)
        #ldap_uid = uid 
        #ldap_scope = 3 
        #ldap_timeout = 5
    
        # 是否开启自注册
        self_registration = on
    
        # Token有效时间,默认30分钟
        token_expiration = 30
    
        # 用户创建项目权限控制,默认是everyone(所有人),也可以设置为adminonly(只能管理员)
        project_creation_restriction = everyone
    
        verify_remote_cert = on
    

    启动Harbor

    • 修改完配置文件后,在当前目录执行./install.sh,Harbor服务就会根据当前目录下的docker-compose.yml开始下载依赖的镜像,检测并按照顺序启动各个服务。

    • 启动完成后,我们访问刚才设置的hostname即可:http://172.16.77.71/,默认端口是80,如果端口占用,我们可以去修改docker-compose.yml文件中,对应服务的端口映射。

    登录web Harbor

    • 输入用户名admin 默认密码(Harbor12345)或已修改密码登录系统

    其他主机客户端登录连接Harbor

           docker login  -u username -p userpasswd 172.16.77.71
    
    • 会报以下错误:

       Error response from daemon: Get https://172.16.77.71/v2/: dial tcp 172.16.77.71:443: connect: connection refused
      
    • 解决办法:

         vim /etc/docker/daemon.json
        {
        "insecure-registries": ["172.16.77.71:5000","172.16.77.71" ]
        }
        systemctl daemon-reload
        systemctl restart docker.service
      

      再次登录就可以了

    • 上传镜像:

        docker tag ubuntu:latest 172.16.77.71/ubuntu
        docker push 172.16.77.71/test/ubuntu:latest
      

    Harbor的默认镜像存储路径在/data/registry目录下,映射到docker容器里面的/storage目录下。
    这个参数是在docker-compose.yml中指定的,在docker-compose up -d运行之前修改。
    如果希望将Docker镜像存储到其他的磁盘路径,可以修改这个参数。

    Harbor的服务管理

    可以使用docker-compose来管理harbor的启动、停止和销毁。但注意必须切换到docker-compose.ym同级目录下运行一下命令

    • 停止Harbor

       docker-compose stop
      
    • 启动harbor

          docker-compose start
      
    • 修改配置后启动

      先停止harbor,再修改配置文件harbor.cfg,然后运行prepare脚本应用配置,最后重新创建harbor并运行它
      
        docker-compose down -v
        vi harbor.cfg
        prepare
        docker-compose up -d
      
    • 清理harbor容器,保留镜像和容器

        docker-compose down -v
      
    • 删除harbor数据库和镜像(常用于干净的重新安装)

        rm -rf /data/database
        rm -rf /data/registry
      
    • 镜像删除和空间回收

      Docker命令没有提供Registry镜像删除功能,日积月累,将会产生许多无用的镜像,占用大量存储空间。若要删除镜像并回收空间,需要调用docker registry API来完成,比较麻烦。Harbor提供了可视化的镜像删除界面,可以逻辑删除镜像。在维护状态下可以回收垃圾镜像的空间。在harbor web端界面对镜像进行删除。这只是逻辑删除 ,实际上宿主机上存放镜像的目录大小没有改变。

    • 彻底删除无用的镜像

      1、首先去界面删除该镜像

      2、在Harbor宿主机上执行如下命令

        先找到当前registry的版本
        docker images vmware/registry 
                 
       列出要删除的镜像:
       
        docker run -it --name gc --rm --volumes-from registry vmware/registry:2.6.1-photon garbage-collect --dry-run /etc/registry/config.yml
        
       注:选项--dry-run只是在最后打印出界面删除了的但是实际上并未删除的镜像层,但是这条命令不会删除这下镜像层
       
       运行下面的命令删除镜像:
       
        docker run -it --name gc --rm --volumes-from registry vmware/registry:2.6.1-photon garbage-collect  /etc/registry/config.yml
        
       再次查看存放镜像的目录大小:
       
       du -sh /data/registry/docker/registry/v2/

    相关文章

      网友评论

          本文标题:docker安装配置Harbor

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