Docker 镜像更新监控利器:Diun 自动通知配置实战指南

一、简介

  • Diun 是一个用 Go 编写的应用程序,用于监控 Docker 镜像更新并发送通知
  • 可通过多种渠道发送通知,包括:邮件、Gotify、Ntfy、Slack、Webhook 等等
  • 支持接入多种镜像清单提供者,包括:Docker、Kubernetes、Swarm、Nomad、Dockerfile、File
  • 支持配置授权访问各种镜像仓库,主流包括:docker.io、ghcr.io、gcr.io、自建仓库等等
  • 官方文档参考:https://crazymax.dev/diun/
  • 开源地址参考:https://github.com/crazy-max/diun
  • 该工具的工作原理参考下图:

二、安装与使用

1. 配置启动 Diun 服务

  • 提前安装好Docker、docker-compose软件环境
  • 新建docker-compose.yml配置文件,内容如下:
    services:
      diun:
        image: crazymax/diun:latest
        command: serve
        volumes:
          - "./data:/data"
          - "/var/run/docker.sock:/var/run/docker.sock"
        environment:
          - "TZ=Asia/Shanghai"
          - "DIUN_WATCH_WORKERS=20"
          - "DIUN_WATCH_SCHEDULE=0 */6 * * *" #配置定时检测周期
          - "DIUN_WATCH_JITTER=30s"
          - "DIUN_PROVIDERS_DOCKER=true" #启用Docker镜像配置提供者
          #这里以邮箱通知配置作为通知配置示例
          - DIUN_NOTIF_MAIL_HOST=smtp.qiye.aliyun.com
          - DIUN_NOTIF_MAIL_PORT=465
          - DIUN_NOTIF_MAIL_SSL=true #开启ssl,一般465都需要设为true
          #- DIUN_NOTIF_MAIL_INSECURESKIPVERIFY=false
          #- DIUN_NOTIF_MAIL_LOCALNAME=
          - DIUN_NOTIF_MAIL_USERNAME=postmaster@xxxx.top
          #- DIUN_NOTIF_MAIL_USERNAMEFILE=
          - DIUN_NOTIF_MAIL_PASSWORD=xxxx
          #- DIUN_NOTIF_MAIL_PASSWORDFILE=
          - DIUN_NOTIF_MAIL_FROM=postmaster@xxxx.top
          - DIUN_NOTIF_MAIL_TO=xxxx@qq.com
        labels:
          - "diun.enable=true"
        restart: always
  • 执行下面命令运行
    docker-compose up -d

2. 启用镜像更新监听(Docker提供者示例)

  • 其他容器运行时,需要增加相应的labels标签,参考如下:监听portainer镜像更新
    version: '3'
    services:
        redis:
            image: redis:latest
            command: redis-server --requirepass 123456
            ports:
                - 6379:6379
            restart: always
            volumes:
                - ./data:/data
            labels:
                - "diun.enable=true"  #(必选)启用镜像监听
                #- "diun.watch_repo=true"  #(可选)监控所有标签
                #- "diun.max_tags=10"  # (可选)只监控最新的10个标签
                #- "diun.include_tags=^\\d+\\.\\d+.*"  # (可选)只监控版本号格式的标签,如 6.2, 7.0 等
                #- "diun.exclude_tags=rc;beta;alpha"  # (可选)排除 rc、beta、alpha 标签
                # 其他参数...

3. 监控通知,这里以邮箱通知示例

  • 发送模板可以调整,更多邮箱通知参数配置可参考:https://crazymax.dev/diun/notif/mail/
  • 邮箱默认模板通知示例截图

三、总结

  • 该工具可以帮助用户提前知晓一些重要容器镜像更新情况,实现提前更新修复、提前体验性能特性
  • 支持Docker快速安装,且非常轻量,可直接在现有Docker环境中应用
  • 支持平台和仓库全面,使用配置简单,通知方式灵活
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容