编辑
2026-10-24
实用工具
00

目录

Watchtower
Diun
Dockwatch

Watchtower

  • 核心逻辑:检测 → 拉取 → 停止旧容器 → 启动新容器。
  • 特点:
    • 完全自动化:一旦发现有新版本,它会悄悄地在后台完成所有更新操作,无需人工干预。
    • 无感更新:适合那些“挂了重启也没事”或者“追求最新特性”的服务。
    • 风险:如果新镜像有 Bug 或配置不兼容,服务可能会直接中断,且没有预警。
    • 一句话总结:懒人神器,全自动更新,但要注意备份和数据持久化。
version: '3' services: watchtower: image: containrrr/watchtower container_name: watchtower volumes: - /var/run/docker.sock:/var/run/docker.sock environment: # 每 3600 秒(1小时)检查一次 - WATCHTOWER_POLL_INTERVAL=3600 # 自动清理旧镜像,节省空间 - WATCHTOWER_CLEANUP=true # 【可选】只更新带有特定标签的容器,更安全 # - WATCHTOWER_LABEL_ENABLE=true restart: unless-stopped

Diun

  • 核心逻辑:检测 → 发送通知(默认不自动更新)。
  • 特点:
    • 只报警,不动手:它发现新镜像后,会通过邮件、Telegram、Slack 等告诉你:“嘿,Nginx 有新版本了!”
    • 安全可控:你收到通知后,可以检查更新日志,确认没问题后再手动执行 docker pull 和重启,或者通过 webhook 触发其他脚本。
    • 规则强大:可以精细控制哪些标签需要监控(比如只监控 1.x 系列,忽略 latest)。
    • 一句话总结:安全第一,只通知不更新,把控制权留在你手里。
version:
services: diun: image: crazymax/diun:latest container_name: diun volumes: - /var/run/docker.sock:/var/run/docker.sock - ./data:/data # 用于存储 Diun 的状态数据库 environment: - TZ=Asia/Shanghai # 日志级别 - LOG_LEVEL=info # 检查间隔 (cron 表达式或 duration) - DIUN_WATCH_WORKERS=20 - DIUN_WATCH_SCHEDULE=0 */6 * * * # 每6小时检查一次 # 允许监控 latest 标签 - DIUN_PROVIDERS_DOCKER_WATCHBYDEFAULT=true # === Telegram 通知配置 === - DIUN_NOTIF_TELEGRAM_TOKEN=你的BOT_TOKEN - DIUN_NOTIF_TELEGRAM_CHATIDS=你的CHAT_ID # === 或者使用 Email 通知 === # - DIUN_NOTIF_MAIL_HOST=smtp.example.com # - DIUN_NOTIF_MAIL_PORT=587 # - DIUN_NOTIF_MAIL_USERNAME=user@example.com # - DIUN_NOTIF_MAIL_PASSWORD=password # - DIUN_NOTIF_MAIL_FROM=diun@example.com # - DIUN_NOTIF_MAIL_TO=admin@example.com restart: unless-stopped

Dockwatch

  • 核心逻辑:监控 + Web 界面展示 + 可选自动/手动更新。
  • 特点:
    • 有图形界面 (GUI):提供一个网页面板,你可以直观地看到哪些容器过时了、系统资源占用情况等。
    • 交互友好:你可以在网页上点击按钮来更新某个特定容器,也可以配置自动更新。
    • 功能综合:除了更新,还具备一定的容器健康监控和日志查看功能。
    • 一句话总结:喜欢看图操作者的首选,集监控与更新于一体。
version: '3' services: dockwatch: image: ghcr.io/ajnart/dockwatch:latest container_name: dockwatch restart: unless-stopped volumes: - /var/run/docker.sock:/var/run/docker.sock:ro # 只读权限即可,更安全 - ./dockwatch_data:/app/data # 持久化配置和数据 ports: - 8080:3000 # 将容器的 3000 端口映射到宿主机的 8080 environment: - TZ=Asia/Shanghai # 【可选】设置登录密码保护 Web 界面 # - DOCKWATCH_AUTH_PASSWORD=your_secure_password

本文作者:Weee

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!