• 部署docker仓库-Harbor


    Habor是由VMWare公司开源的容器镜像仓库。事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基于角色的访问控制 ,AD/LDAP集成以及审计日志等,足以满足基本企业需求。 

    官方地址:https://vmware.github.io

    Github:https://github.com/goharbor/harbor

    Harbor主要功能

     Harbor组件

    组件

    功能

    harbor-adminserver

    配置管理中心

    harbor-db

    Mysql数据库

    harbor-jobservice

    负责镜像复制

    harbor-log

    记录操作日志

    harbor-ui

    Web管理页面和API

    nginx

    前端代理,前端页面和镜像上传/下载转发

    redis

    会话

    registry

    镜像存储

    Harbor部署

    环境要求:

    Harbor是VMware公司开源的企业级docker registry项目

    项目地址:https://github.com/vmware/barbor

    1、下载离线安装包
    2、安装docker
    3、安装docker-compose
    4、自签TLS证书:https://github.com/vmware/harbor/blob/master/docs/configure_https.md
    5、Harbor安装与配置
    6、Docker主机访问Harbor
    

    https://github.com/goharbor/harbor/blob/master/docs/configure_https.md

    https://goharbor.io/docs/1.10/install-config/download-installer/

    Harbor安装有3种方式:

    	在线安装:从Docker Hub下载Harbor相关镜像,因此安装软件包非常小
    	离线安装:安装包包含部署的相关镜像,因此安装包比较大
    	OVA安装程序:当用户具有vCenter环境时,使用此安装程序,在部署OVA后启动Harbor
    

    采用离线安装,首先下载离线安装包:https://github.com/vmware/harbor/releases

    HTTP方式部署

    wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
    yum -y install docker-ce-18.06.1.ce-3.el7
    systemctl enable docker && systemctl start docker
    docker --version
    
    #修改仓库地址
    cat >/etc/docker/daemon.json <<EOF
    {
      "registry-mirrors": [
        "https://registry.docker-cn.com"
     ],
      "insecure-registries": [
        "192.168.10.122"
      ]
    }
    EOF
    
    验证是否成功
    systemctl daemon-reload
    systemctl restart docker.service
    docker info
    

      安装docker-compose

    方法一: 国内推荐方法
    yum install -y epel-release
    yum install -y docker-compose
    
    方法二:
    curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose 
    chmod +x /usr/local/bin/docker-compose
    docker-compose --version
    但是此方法会经常因为网络的原因而无法安装
     
    方法三:
    #1、安装python-pip
    yum -y install epel-release
    yum -y install python-pip 
    #2、安装docker-compose
    pip install docker-compose
    docker-compose version
    

    自签HTTPS证书,可以不配置

    mkdir /root/harbor/ssl/
    cd /root/harbor/ssl/
    openssl req 
    -newkey rsa:4096 -nodes -sha256 -keyout ca.key 
    -x509 -days 365 -out ca.crt
    

     生成域名证书

    openssl req 
    -newkey rsa:4096 -nodes -sha256 -keyout reg.fage.com.key 
    -out reg.fage.com.csr
    

    空白处回车不用管,回车即可,注意域名出非常重要,密码可以设置也可以不设置,

     

    颁发证书

    openssl x509 -req -days 365 -in reg.fage.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out reg.fage.com.crt
    

     主要用到是:reg.fage.com.crt  reg.fage.com.key 这个两个文件

    开始部署

    下载地址:

    https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.5.tgz

    wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.5.tgz
    

     解压文件

    tar xf harbor-offline-installer-v1.7.5.tgz 
    cd harbor/
    

      编辑配置文件

    vim /root/harbor/harbor.cfg 确保下面几个地方没问题,如果不是有80端口,可以加上端口号,不会与其他端口冲突,例如:192.168.10.122

    #不加证书http
    hostname = 192.168.10.122
    ui_url_protocol = http
    harbor_admin_password = Harbor12345
    
    #下面的是加证的配置https
    hostname = reg.fage.com
    ui_url_protocol = http
    ssl_cert = ./ssl/reg.fage.com.crt
    ssl_cert_key = ./ssl/reg.fage.com.key
    harbor_admin_password = Harbor12345
    

    准备配置文件:

    ./prepare
    

     开始安装并启动barbor

    cd /root/harbor/ && ./install.sh
    

    验证

    cd /root/harbor/ && docker-compose ps
    

    需要状态全部为UP才是成功的

     浏览器输入地址就可以访问了

    http://192.168.10.122

    账号:admin  

    密码:Harbor12345

     添加用

     在项目中添加成员,或者管理员

     上传镜像到harbor

    接下来将刚才构建的镜像推送到Harbor仓库,先看看我们要推送的镜像

    docker images

     在推送之前,需要注意第一列,这个完整格式是

    regisry.stnrs.com/library/hello-word:latest

    镜像中心域名     项目名称   名称    版本

    如果镜像只放在本地存储REPOSITORY写什么都可以,但推送到镜像仓库就必须指定仓库中心地址。 

    所以,先打重命名REPOSITORY,其实就是引用源镜像标记了一个目标镜像

    上传镜像需要先登录,不登录会报错

    docker image tag nginx 192.168.10.122/library/nginx-1
    docker login 192.168.10.122
    docker push 192.168.10.122/library/nginx-1
    

     

     登录网页查看镜像

    http://192.168.10.122/harbor/projects/1/repositories

     加密的方式

    在另外一台主机上安装docker后,把证书拷贝下来,放到需要使用的机器上,因为自签证书不受信任,所以需要将证书文件拿到客户机去解密

    首先安装docker

    wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
    yum -y install docker-ce-18.06.1.ce-3.el7
    systemctl enable docker && systemctl start docker
    docker --version
    

    创建存放证书的文件夹

    mkdir -p /etc/docker/certs.d/reg.fage.com
    

    域名解析

    echo "192.168.10.112 reg.fagfe.com" >>/etc/hosts
    

    拷贝harbor上证书到客户端证书目录下,客户端操作

    scp root@192.168.10.112:/root/harbor/ssl/reg.fage.com.crt /etc/docker/certs.d/reg.fage.com/
    

    如果没有加入证书就要修改这个文件才能登录

    cat >/etc/docker/daemon.json <<EOF
    {
      "registry-mirrors": [
        "https://b9pmyelo.mirror.aliyuncs.com"
     ],
      "registry-mirrors": [
        "https://registry.docker-cn.com"
      ],
      "insecure-registries": [
        "192.168.10.112"
      ]
    }
    EOF
    

    重置系统环境

    systemctl daemon-reload
    systemctl restart docker.service
    

     登录成功后才能上传镜像

    docker login reg.fage.com
    docker login 192.168.10.112
    docker image tag nginx-v1 192.168.10.112/nginx-v1
    docker push 192.168.10.112/nginx-v1
    
    加密方式
    docker login reg.fage.com
    docker login reg.fage.com
    docker image tag nginx-v1 reg.fage.com/nginx-v1
    docker push reg.fage.com /nginx-v1
    

  • 相关阅读:
    react 起手式
    获取元素CSS值之getComputedStyle方法熟悉
    js设计模式
    es6笔记5^_^set、map、iterator
    Flux --> Redux --> Redux React 入门 基础实例使用
    http协议与内容压缩
    C程序中唯一序列号的生成
    动态设置布局LayoutInflater
    构造Scala开发环境并创建ApiDemos演示样例项目
    BZOJ 2525 Poi2011 Dynamite 二分答案+树形贪心
  • 原文地址:https://www.cnblogs.com/huanglingfa/p/13927237.html
Copyright © 2020-2023  润新知