zoukankan      html  css  js  c++  java
  • Harbor本地镜像库安装与使用

    Harbor安装很简单,不过安装以后要怎么操作,百度了好久都没有找到实操的方法,怎么从官方拉取镜像后更新到私有仓库中?这个弄了好久,一样样测试后才找到方法,对于不熟悉私有仓库的小白来说,有点坑。还好花了些时间解决了。

    1. Harbor简介

    Harbor是构建企业级私有docker镜像的仓库的开源解决方案,它是Docker Registry的更高级封装,它除了提供友好的Web UI界面,角色和用户权限管理,用户操作审计等功能外,它还整合了K8s的插件(Add-ons)仓库,即Helm通过chart方式下载,管理,安装K8s插件,而chartmuseum可以提供存储chart数据的仓库。

    另外它还整合了两个开源的安全组件,一个是Notary,另一个是Clair,Notary类似于私有CA中心,而Clair则是容器安全扫描工具,它通过各大厂商提供的CVE漏洞库来获取最新漏洞信息,并扫描用户上传的容器是否存在已知的漏洞信息,这两个安全功能对于企业级私有仓库来说是非常具有意义的。

    2. 安装docker-compose组件

    yum -y install epel-release
    yum -y install python-pip
    pip install --upgrade pip
    pip install docker-compose 
    docker-compose version

    3. 安装Harbor

    安装Docker

    先按《安装Docker》文档安装好decker环境

    修改docker配置项

    vi /usr/lib/systemd/system/docker.service

    修改下面内容项(insecure-registry值为当前服务器ip)

    ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --selinux-enabled=false --insecure-registry 192.168.15.216

    重启服务

    systemctl daemon-reload
    systemctl restart docker

    获取Harbor安装包下载链接

    登录 https://github.com/goharbor/harbor/releases/ 找到想要安装的版本,获取offline版本的下载链接

    执行命令安装Harbor

    # 创建日志存放目录
    mkdir -p /data/logs/harbor
    
    cd /usr/local/src/
    wget https://github.com/goharbor/harbor/releases/download/v1.10.0/harbor-offline-installer-v1.10.0.tgz
    tar -zxvf harbor-offline-installer-v1.10.0.tgz
    cd harbor
    vi harbor.yml

    修改以下内容

    # 当前服务器ip,安装完成后就可以用这个地址访问web管理页面
    hostname: 192.168.1.xx
    
    # 将https的所有项注释掉,不开启https访问
    #https:
      # https port for harbor, default is 443
      #port: 443
      # The path of cert and key files for nginx
      #certificate: /your/certificate/path
      #private_key: /your/private/key/path
    
    # harbor ui后台管理员密码  
    harbor_admin_password: xxxxx
    #必须设置,否则安装后重装时不能修改,除非删除数据库后重新安装
    password: xxxx
    # harbor日志存放路径
    location: /data/logs/harbor

    然后运行脚本进行安装

    ./prepare
    ./install

    验证安装

    在浏览器输入你的服务器地址 http://192.168.1.xx/ 访问管理页面

    输入账号:admin 以及配置参数时的管理员密码,就可以正常登录了

    docker-compose启动与停止命令

    docker-compose start
    docker-compose stop

    修改配置操作

    如果需要更改harbor的配置项,可按以下步骤进行修改更新

    docker-compose down -v
    vim /usr/local/harbor/harbor.yml
    ./prepare
    docker-compose up -d

    测试镜像的拉取与更新

    PS:可以在另一台安装了docker的服务器上做以下测试

    配置registry服务是安全可信赖的

    vi /etc/docker/daemon.json

    将内容修改为下面配置(insecure-registries要改为你的服务器地址)

    {
      "exec-opts": ["native.cgroupdriver=systemd"],
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "100m"
      },
      "storage-driver": "overlay2",
      "storage-opts": [
        "overlay2.override_kernel_check=true"
      ],
      "insecure-registries": [
        "192.168.1.xx"
      ],
      "registry-mirrors": [
        "https://registry.docker-cn.com",
        "https://a8qh6yqv.mirror.aliyuncs.com",
        "http://hub-mirror.c.163.com"
      ]
    }

    重启docker

    systemctl restart docker

    测试镜像拉取与更新

    # 从官网https://hub.docker.com/search?q=&type=image 拉取镜像
    docker pull redis
    
    # 查看已下载的镜像
    docker images
    
    # 使用tag将镜像标志为要推送到私有仓库的镜像(默认私有仓库镜像目录为library)
    docker tag redis 192.168.1.xx/library/redis
    # 命令中,redis后面不添加版本参数,则表示当前版本号为latest,可以指定为:v1.0.0等版本号,指定后拉取镜像时,也需要加上版本号
    
    # 登录harbor,这里需要添加url参数,不然默认登录的是官网,url需要加上http,不然默认是https
    docker login http://192.168.1.xx
    # 输入用户名admin,以及密码,如果是后台新建的账号,需要在项目=>library(对应的项目名称)=>成员 中添加对应的账号
    
    # 将镜像提交到私有仓库中
    docker push 192.168.1.xx/library/redis
    # 提交后登录web管理端,进入项目=>library(对应的项目名称)=>镜像仓库 就可以看到新增的镜像了
    
    # 测试从私有仓库中安装镜像
    # 查看当前服务器镜像
    docker images
    
    # REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
    # 192.168.1.xx/library/redis   latest              c33c9b2541a8        33 hours ago        98.2MB
    # redis                          latest              c33c9b2541a8        33 hours ago        98.2MB
    
    # 删除当前服务器docker上的镜像
    docker rmi 192.168.1.xx/library/redis:latest
    docker rmi redis:latest
    
    # 查看当前服务器镜像(redis镜像已不存在)
    docker images
    
    # 从私有仓库中安装镜像
    docker pull 192.168.1.xx/library/redis
    
    # 查看当前服务器镜像
    docker images
    
    # REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
    # 192.168.1.xx/library/redis   latest              c33c9b2541a8        33 hours ago        98.2MB

    以上操作都是在私有仓库中的默认库library操作的,如果需要分项目创建不同的库,可以登录web管理端,在项目中创建新的库

    如果需要针对不同的人员操作仓库进行管理,可以在用户管理中添加账号,然后在新建库的成员中,添加用户并绑定对应的操作权限

    版权声明:本文原创发表于 博客园,作者为 AllEmpty 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。

    作者博客:http://www.cnblogs.com/EmptyFS/

  • 相关阅读:
    linux系统,CentOs7加新硬盘
    mysql学习笔记11_12(查询)
    No manual entry for printf in section 3
    MyBatis-Plus的条件构造器 EntryWrapper和Condition
    MyBatis-Plus 通用CRUD启动注入SQL原理分析
    Spring框架中Bean的生命周期
    Spring bean的作用域
    成员变量和局部变量
    类初始化和实例初始化
    JVM详解
  • 原文地址:https://www.cnblogs.com/EmptyFS/p/12121423.html
Copyright © 2011-2022 走看看