飞牛 fnos 使用docker部署 Watchtower 自动更新 Docker 容器

季春二九 2024-12-16 7 12/16

Watchtower 简介

Watchtower 是一款开源的 Docker 容器管理工具,主要功能为自动更新运行中的 Docker 容器,支持自动拉取镜像并更新容器、配置邮件通知以及定时执行容器更新任务。

用 compose 搭建 Watchtower 的步骤

  1. 新建文件夹:在任意位置创建一个 watchtower 文件夹,用于存放 docker-compose.yaml 文件。
    飞牛 fnos 使用docker部署 Watchtower 自动更新 Docker 容器
  2. 新增项目:使用 docker 的 compose 方式构建,点击新增项目。
    飞牛 fnos 使用docker部署 Watchtower 自动更新 Docker 容器
  3. 创建项目
    • 输入项目名称,路径选择刚刚创建的 watchtower 文件夹,点击创建。
    • 将相应代码拷贝进 docker-compose.yml 文件(创建项目后立即启动打钩)

    飞牛 fnos 使用docker部署 Watchtower 自动更新 Docker 容器
    代码分为带邮箱通知版本和不带邮箱通知版本,以下分别介绍:

    • 带邮箱通知版本
    version: '3'
    services:
      watchtower:
     image: containrrr/watchtower:latest
     container_name: watchtower
     environment:
       - WATCHTOWER_NOTIFICATIONS=email  # 启用邮件通知
       - WATCHTOWER_NOTIFICATION_EMAIL_FROM=xxxx@163.com  # 发件人邮箱
       - WATCHTOWER_NOTIFICATION_EMAIL_TO=xxxx@qq.com  # 收件人邮箱
       - WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.163.com  # 邮件服务器地址
       - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587  # 邮件服务器端口
       - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=xxxx@163.com  # 邮箱
       - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=shydihdlneq  # 邮件服务器密码
       - WATCHTOWER_NOTIFICATION_EMAIL_DELAY=30  # 邮件通知延迟,单位:秒
     volumes:
       - /var/run/docker.sock:/var/run/docker.sock  # 访问 Docker 守护进程
     restart: unless-stopped  # 自动重启容器
     command: --schedule "0 3 * * *" --cleanup  # 每天凌晨 3 点执行更新,删除旧镜像,并发送通知
    • 不带邮箱通知版本
    version: '3'
    services:
      watchtower:
     image: containrrr/watchtower:latest
     container_name: watchtower
     volumes:
       - /var/run/docker.sock:/var/run/docker.sock  # 访问 Docker 守护进程
     restart: unless-stopped  # 自动重启容器
     command: --schedule "0 3 * * *" --cleanup  # 每天凌晨 3 点执行更新,并删除旧镜像

    注意事项

  4. 运行报错的,请在浏览器打开文章后再复制代码。
  5. 邮件通知请根据自己的邮箱配置,收件人和发件人可以是同一个邮箱,代码中设置的是每天凌晨 3 点执行更新(通过 --schedule "0 3 * * *" 来定义任务计划,其中第一位 0 表示分钟,第二位 3 表示小时(24 小时制),第三位 * 表示日,第四位 * 表示月,第五位 * 表示星期),如有其他时间需求可自行修改。--cleanup 表示更新后删除旧镜像,释放存储空间。

后续操作及其他提示

  • 点击完成后,等待构建完成,部署完成之后会立即执行一遍(若配置了邮件通知,就会收到消息提醒)。
    飞牛 fnos 使用docker部署 Watchtower 自动更新 Docker 容器
  • 查看运行日志,若镜像拉取不下来,可以试着换换镜像源(可参考“飞牛 解决 Docker 无法拉取镜像的问题”)。
  • 其他配置参数可查看官方文档:https://containrrr.dev/watchtower/arguments/
- THE END -

季春二九

8月01日17:21

最后修改:2025年8月1日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论