zoukankan      html  css  js  c++  java
  • Harbor管理镜像

    安装Harbor管理镜像服务

     

    Harbor是什么?

    还记得Docker Registry么?它是Docker官方提供的镜像仓库,简单易用,一键就可以部署、使用。

    虽然看起来不错,但是Registry有些问题需要解决:

    1. 没有图形界面
    2. 没有用户权限控制
    3. 看不到镜像操作记录
    4. 仓库内镜像管理难度大,容易造成空间浪费

    卖了个关子,基于Registry现有的问题,VMWare公司开发了Harbor,用来完善Registry的功能,

    使用Harbor,你可以:

    • 按项目管理镜像
    • 明确记录用户对镜像仓库项目的操作,包含create、push 、delete,甚至pull!
    • 有图形界面
    • 有用户管理,可以针对项目进行细粒度的权限控制
    • 仓库内的镜像可以在图形界面删除与复制,垃圾清理!
    • 可以同步已有镜像仓库的镜像
    • 有仓库管理 暂时没太关注这是干嘛用的
    • API控制中心!

    放几张效果图:

    搭建步骤

    • 安装Docker、Docker-compose
    • 下载Harbor离线包
    • 配置harbor.yml
    • 运行 ./install.sh

    安装Docker、Docker-compose

    安装docker

    CentOS安装Docker-ce并配置国内镜像

    配置非root用户免sudo使用docker,立即生效

    sudo usermod -aG docker 要使用的用户名 && newgrp docker

    安装docker-compose

    sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    
    sudo chmod +x /usr/local/bin/docker-compose #赋执行权限

    下载Harbor离线包

    在Github上的仓库地址https://github.com/goharbor/harbor/releases

    这里我们下载最新的release v1.8.2版本

    [v1.8.2离线版下载链接]https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.2.tgz

    离线版本相对于online版本,区别是它们都是使用的Docker镜像与Docker-compose工具,不同的是

    • 离线包中包含了所有需要的镜像导出包
    • 在线包中只包含简单的配置文件

    离线包占内存比较大,差不多五百多兆,因为我们公司一般是内网的线上环境,这里就直接下载离线包了,您可以选择自己喜欢或需要的版本,以下使用离线包演示

    可以直接用命令下载

    wget -P /usr/local/src https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.2.tgz

    这里直接下载到了/usr/local/src中

    配置harbor.yml

    先进入刚才下载到的目录,解压离线包到/usr/local/harbor下

    cd /usr/local/src
    tar zxf harbor-offline-installer-v1.8.2.tgz  -C /usr/local/
    cd /usr/local/harbor/

    配置harbor.yml vim harbor.yml, 这里包含必要参数可选参数,这里只记录下必要参数

    必要参数

    • hostname:访问的Harbor服务的IP或域名(UI与命令行操作同样生效),不要使用localhost127.0.0.10.0.0.0
    • data_volume: Harbor中的数据挂载对应宿主机的位置,如/home/harbor/data
    • harbor_admin_password: admin管理员密码,默认管理员账号/密码为admin/Harbor12345
    • database: Harbor内部的数据库
      • password: 数据库密码
      • max_idle_conns: 连接池最大保持空闲数
      • max_open_conns: 同时最大开启的连接数
    • jobservice:作业相关的服务
      • max_job_workers: 最大作业worker数
    • log: 日志相关
      • level:日志输出等级
      • local:本地日志保留相关
        • rotate_count: 日志文件在移除之前的旋转次数 Log files are rotated rotate_count times before being removed. If count is 0, old versions are removed rather than rotated.
        • rotate_size: 日志保持大小,超出部分会删除旧日志
        • location: 存储日志的路径
      • external_endpoint:开启此选项,将会把日志转发到syslog服务中
        • protocol:转发协议,默认TCP
        • host: syslog服务的ip
        • port: syslog服务监听的端口号

    必要参数基本就这些,如果想配置更仔细些,请参考Github

    运行 ./install.sh

    cd /usr/local/harbor
    ./install.sh #运行安装脚本

    查看下用到哪些容器 docker-compose ps

    到此安装完成

    测试与使用Harbor

    访问hostname处配置的IP

    登录即可访问了,这里使用就不多说了,点点就了解个七七八八了

    docker login 与 push 测试

    接下来测试下,使用docker push到这个仓库中

    推荐再准备一台虚拟机,如果没有的话,可以先在/usr/local/harbor目录下执行docker-compose down -v关闭harbor各容器

    推送镜像到非https的仓库时,都需要设置非安全的仓库,vim /etc/docker/daemon.json,如图大家参考下

    主要是

    {
        "insecure-registries": ["192.168.87.139:80"]
    }

    我这里之前配置了另一个镜像仓库,这里大家看看就好

    需要注意的是:刚才配置的hostname后需要写明80端口,如果是域名则不需要

    改好后,重启docker服务systemctl restart docker

    登录仓库

    docker login 192.168.87.139:80

    初次登录需要使用用户名与密码,这个是在Harbor用户管理中配置的,admin用户拥有最高权限

    这里用本地java:latest镜像举例

    #重新tag方能推送
    docker tag java:latest 192.168.87.139:80/library/java:latest
    #推送镜像
    docker push 192.168.87.139:80/library/java:latest

    去Harbor的UI界面 -> 项目 -> library

    我们点开library/java,可以查看具体的tags

    删除本地刚才tag的镜像,我们pull下来试试

    #删除本地镜像
    docker rmi 192.168.87.139:80/library/java:latest
    #pull Harbor镜像仓库中的镜像
    docker pull 192.168.87.139:80/library/java:latest

    一切正常,后续自我去配置下可选的配置就可以了。

    关闭Harbor服务

    cd /usr/local/harbor
    docker-compose down -v

    删除/卸载Harbor

    先参考上一小节关闭Harbor服务,关闭Harbor

    rm -rf /usr/local/harbor
    rm -rf /usr/local/src/harbor

    删除镜像这块就需要使用docker rmi了,这里就不多说了,刚才docker-compose ps时有显示用到哪些镜像

    后记

    本来打算暂时不更新博客的,现在工作需要去看看镜像仓库相关的内容,输出文档,这里就一口气全写出来了,先这样。

  • 相关阅读:
    [zoj3627]模拟吧
    [zoj3623]背包模型
    [hdu4358]树状数组
    [hdu1272]并查集
    [hdu3308]线段树
    [hdu5033]单调队列
    [hdu1506]单调队列(栈)
    [hdu2888]二维RMQ
    [hdu4123]dfs区间化+RMQ
    [hdu1242]优先队列
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/11856664.html
Copyright © 2011-2022 走看看