Watchtower 简介

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

用 compose 搭建 Watchtower 的步骤

  1. 新建文件夹:在任意位置创建一个 watchtower 文件夹,用于存放 docker-compose.yaml 文件。
    飞牛 fnos 使用docker部署 Watchtower 自动更新 Docker 容器-LMLPHP
  2. 新增项目:使用 docker 的 compose 方式构建,点击新增项目。
    飞牛 fnos 使用docker部署 Watchtower 自动更新 Docker 容器-LMLPHP
  3. 创建项目
    • 输入项目名称,路径选择刚刚创建的 watchtower 文件夹,点击创建。
    • 将相应代码拷贝进 docker-compose.yml 文件(创建项目后立即启动打钩)
      飞牛 fnos 使用docker部署 Watchtower 自动更新 Docker 容器-LMLPHP
      代码分为带邮箱通知版本和不带邮箱通知版本,以下分别介绍:
    • 带邮箱通知版本
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 点执行更新,并删除旧镜像

注意事项

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

后续操作及其他提示

  • 点击完成后,等待构建完成,部署完成之后会立即执行一遍(若配置了邮件通知,就会收到消息提醒)。
    飞牛 fnos 使用docker部署 Watchtower 自动更新 Docker 容器-LMLPHP

  • 查看运行日志,若镜像拉取不下来,可以试着换换镜像源(可参考“飞牛 解决 Docker 无法拉取镜像的问题”)。

  • 其他配置参数可查看官方文档:https://containrrr.dev/watchtower/arguments/。

12-28 08:45