zoukankan      html  css  js  c++  java
  • Docker之Harbor私服的搭建及使用

    今天给大家带来Harbor环境的搭建,以及使用介绍

    • Harbor介绍:

      Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry
      也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、
      镜像复制和中文支持等功能。


    • 本机环境:
      centos7
      docker:Docker version 18.06.1-ce
      docker-compose:docker-compose version 1.22.0
        这里要说明一下,要使用Harbor,需要docker,和docker-compose
    
    • 1

    1.Docker 安装

    # yum 包更新
    [root@centos7 ~]# yum update
    
    # 卸载旧版本 Docker
    [root@centos7 ~]# yum remove docker docker-common docker-selinux docker-engine
    
    # 安装软件包
    [root@centos7 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
    
    # 添加 Docker yum源
    [root@centos7 ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
    # 安装 Docker
    [root@centos7 ~]# yum -y install docker-ce
    
    # 启动 Docker
    [root@centos7 ~]# systemctl start docker
    
    # 查看 Docker 版本号
    [root@centos7 ~]# docker --version
    

    2.Docker Compose 安装

    # 安装 epel-release
    [root@centos7 ~]# yum install epel-release
    
    # 安装 python-pip
    [root@centos7 ~]# yum install -y python-pip
    
    # 安装 docker-compose
    [root@centos7 ~]# pip install docker-compose
    
    # 安装 git
    [root@centos7 ~]# yum install git
    
    # 查看 docker-compose 版本号
    [root@centos7 ~] docker-compose -version
    
    • 到这里Harbor的环境已经搭建完成,现在开始安装Harbor吧

    点击这里下载Harbor

    在这里插入图片描述
    这里分为在线和离线的版本,我下载的是1.6.0在线的版本

    • 下载下来之后解压缩,目录下会有harbor.conf,就是Harbor的配置文件了。
        ## Configuration file of Harbor
        
        # hostname设置访问地址,可以使用ip、域名,不可以设置为127.0.0.1或localhost
        hostname = 10.0.86.193
        
        # 访问协议,默认是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
      配置完成之后再当前目录下执行./prepare,再执行./install.sh。Harbor就回根据当前目录下的docker-compose.yml下载依赖的镜像
    • 启动Harbor
      安装完成之后,打开浏览器访问你上边配置的hostname属性,就能看到Harbor的界面了。
      在这里插入图片描述
      账号默认是admin,密码默认Harbor12345(就是你上班配置文件中配置的,如果没有改动的话就是这个)

    这里还要在说一个问题
    Harbor是搭建完成了,在我们上传项目的时候可能会出现一些问题

    docker login 10.0.86.193
    Username: admin
    Password:
    Error response from daemon: Get https://10.0.86.193/v1/users/: dial tcp 10.0.86.193:443: getsockopt: connection refused
    

    在我们进行登录上传代码的时候,会报出这样的错误
    这是因为docker1.3.2版本开始默认docker registry使用的是https,我们设置Harbor默认http方式,所以当执行用docker login、pull、push等命令操作非https的docker regsitry的时就会报错。
    解决办法:
    如果是在Harbor本机登录可以这样做如下解决

    1. 如果系统是MacOS,则可以点击“Preference”里面的“Advanced”在“Insecure
      Registry”里加上10.0.86.193,重启Docker客户端就可以了。
    • 如果系统是Ubuntu,则修改配置文件/lib/systemd/system/docker.service,修改[Service]下ExecStart参数,增加–insecure-registry
      10.0.86.193。
    • 如果系统是Centos7,可以在/etc/docker/daemon.json 加上如下内容(注意是json字符串)
         {
          "insecure-registries": [
            "10.0.86.193"
          ]
        }
    

    打开docker-compose.yml添加如下内容,注意前边的空格
    在这里插入图片描述
    然后我们执行docker-compose stop
    ./install.sh
    再次登录就OK了

        [root@docker02appl]# docker login 10.0.86.193
        Username(admin): admin
        Password: 
        Login Succeeded
    

    如果是远程登录的话,也会出现这个错误

    • 查找Docker的服务文件:登录到已经安装Docker的服务器,输入 systemctl status docker查看Docker的service文件。
      在这里插入图片描述

    • 编辑docker.service文件:在ExecStart处添加 –insecure-registry 参数。
      在这里插入图片描述
      后边跟的是你Harbor的地址

    • 重新加载service文件,重启docker服务。

        systemctl daemon-reload
        systemctl restart docker
    

    再次登录:

        docker login [ip地址或域名](Harbor地址,harbor.cfg文件中的hostname项)
        //根据提示分别输入用户名和密码
    
    **附上拉取和推送的命令:**
    3.Harbor私服的使用
    
    #推送之前先登录Harbor
    	docker login 10.0.86.193
    	admin
    	Harbor12345
    	提示success登录成功
    	
    	查看自己有哪些镜像;docker images
    	把需要上传到Harbor的镜像运行如下命令就可以了
        #镜像打标签
        [root@centos7 ~]#docker tag 镜像名:标签 私服地址/仓库项目名/镜像名:标签
        
        #推送到私服
        [root@centos7 ~]#docker push  私服地址/仓库项目名/镜像名:标签  
        
        #从私服拉取镜像
        [root@centos7 ~]#docker pull 私服地址/仓库项目名/镜像名:标签
  • 相关阅读:
    一次性能优化最佳实践
    数据库大型应用解决方案总结 笔记
    为ASP.NET MVC创建一个基于Mini容器的ControllerFactory
    EmitMapper,AutoMapper,NLiteMapper和手工映射性能大比拼
    Web 高性能开发汇总
    DI 容器Mini容器工作机制剖析(上篇)
    Struct 创建性能大比拼(反射,泛型反射,泛型创建,缓存Emit)
    Class 创建性能大比拼(反射,泛型反射,泛型创建,缓存Emit,非缓存Emit)
    DI 容器Mini容器工作机制剖析(下篇)
    国内外ubuntu衍生版比较
  • 原文地址:https://www.cnblogs.com/boonya/p/13624235.html
Copyright © 2011-2022 走看看