• CI/CD docker compose 部署 humpback - single mode


    最近想搭一搭个人服务器,其中有很多东西都是通过 docker 来管理,每次都手动输入命令比较麻烦,需要一个轻量级的容器管理工具来直观轻松的管理容器和镜像。于是便相中了 humpback。

    Humpback

    humpback 相关的详细介绍请自助传送

    架构

    在这里插入图片描述

    主要组件

    • humpback website
      提供一个可视化界面,用户可以进行权限管理,容器管理,镜像管理,客户端节点管理(单机/集群),镜像地址
    • humpback agent
      在每个目标节点(需要管理容器/镜像的机器)上的一个客户端程序,用于接收来自 humpback website/humpback center 的命令并执行,需要管理容器或者镜像的机器都需要安装这个,镜像地址
    • humpback center
      集群中心(集群节点的发现和管理),主要是用于批量操作(创建,删除,修改,迁移)容器/镜像,镜像地址

    通过 docker compose 部署

    前置条件

    机器都已经安装上 docker,docker compose

    部署 Website

    docker-compose.yml 如下:
    其中的部分配置如 映射的到本机的目录列表/端口都可以改成自己想要的

    version: "3.9"
    
    services:
      humpback-web:
        image: humpbacks/humpback-web:1.3.0
        container_name: humpback-web
        volumes:
          - ./dbfiles:/humpback-web/dbFiles
        ports:
          - 8001:80
        restart: unless-stopped                                                                                                                                             
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    执行 docker compose up -d,在容器运行起来之后,我们访问绑定到本地的 8001 端口:
    就会看到如下界面,输入默认的管理员账户和密码后即可进入系统

    • 账户:admin
    • 密码:123456
      在这里插入图片描述
      建议登陆之后就修改一次密码,入口在 Account >> Change Password,
      进入系统后如果需要新加用户可以通过 Manage >> Users >> Add User 完成,如下
      在这里插入图片描述

    部署 Agent

    先通过 docker version 获取到需要安装 Agent 机器上 docker 对应的 docker api version,我这里的是 1.41,用于填充容器的 DOCKER_API_VERSION 环境变量
    在这里插入图片描述

    docker-compose.yml 如下
    其中的部分配置如 映射的到本机的目录列表都可以改成自己想要的

    version: "3.9"
    services:
      humpback-agent:
        image: humpbacks/humpback-agent:1.3.2
        container_name: humpback-agent
        volumes:
          - /var/run:/var/run/:rw
          - ./compose_files:/opt/app/humpback-agent/compose_files/
        environment:
          - DOCKER_CLUSTER_ENABLED=false
          - DOCKER_API_VERSION=v1.41
        restart: unless-stopped
        # 因为需要和宿主机共用网络,所以这里需要使用 host 模式,不想使用 host 模式可以通过 ports 映射 xx:8500 端口来完成,website 是通过 {agent host}:{agent port}/v1/ping 来测试连接是否成功
        network_mode: host
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    执行 docker compose up -d,在容器运行起来之后,我们可以继续下一步

    在 Website 中添加对应节点

    这一步之所以在部署 Agent 之后,是因为能够被扫描到的机器必须部署 Agent。
    进入我们先前部署的 Website,
    按照 Manage >> Groups >> Add Group 路径操作,如下
    在这里插入图片描述
    点击 Add Group 后,你会看到下面的界面:
    在这里插入图片描述

    • Name: Group 的名称,这里可以按照你具体的分组名称来
    • Description:描述一下这个组是干什么的
    • Open to public:是否公开,如果这个 Enable,则即使不是这个 Group 的 Owner 也可以看到
    • Cluster Mode:是集群模式还是单机模式
    • Contact Info:联系信息,一般填写维护人员邮箱即可
    • Owners:在这里的都可以修改这个 Group(管理员账号即使不在也可以编辑)
    • Servers:Group 中的节点列表,可以增加对应的节点(也就是我们前面部署 Agent 的对应机器),
      1. name 可以随意填写,能够区分即可
      2. IP 就填写对应的机器内网 IP 即可

    我这里填写完成后的如下:
    在这里插入图片描述
    点击 Save 保存成功后,我们去到 Group >> prod >> prod-1,即可看到对应机器上的容器,点击 Docker Images 即可查看/管理对应机器的镜像
    在这里插入图片描述

  • 相关阅读:
    JavaScript的DOM技术
    JPA在不写sql的情况下实现模糊查询
    ①、企业快速开发平台Spring Cloud之HTML 简介
    vue3学习(五)--- 父子组件传值
    用btcdeb工具学会Bitcoin Script中应当要学会的指令--中山大学软件工程学院专选课区块链原理与技术实验Lab7
    Elasticsearch(四) es集群搭建部署以及节点分片介绍
    在asp.net中,实现类似安卓界面toast的方法(附更多弹窗样式)
    33.1.2 安装Keepalived
    5‘-二磷酸鸟嘌呤核苷-岩藻糖二钠盐,GDP-Fucose,15839-70-0
    Django Web框架
  • 原文地址:https://blog.csdn.net/qq_21265915/article/details/128021310