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

知新坊 教程归档 1.7K+

Watchtower是一款开源的Docker容器管理工具,其主要功能在于自动更新运行中的Docker容器

Watchtower 支持以下功能:

自动拉取镜像并更新容器。

配置邮件通知。

定时执行容器更新任务。

compose搭建Watchtower

1、新建文件夹

先在任意位置创建一个 wa tchtower 文件夹,用于存放docker-compose.yaml文件,参考如下

飞牛 使用docker部署Watchtower 自动更新 Docker 容器-第1张图片-资源分享

2、新增项目

使用docker的compose方式构建,点击新增项目

飞牛 使用docker部署Watchtower 自动更新 Docker 容器-第2张图片-资源分享

3、创建项目

输入项目名称,路径选择你刚刚创建的 wa tchtower 文件夹,点击创建docker-compose.yml把以下代码拷贝进去,创建项目后立即启动打钩

飞牛 使用docker部署Watchtower 自动更新 Docker 容器-第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 点执行更新,删除旧镜像,并发送通知

不带邮件通知版本

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 * * *":使用 CRON 表达式定义任务计划,这里表示每天凌晨 3:00 执行。

第一位 0:表示分钟。

第二位 3:表示小时(24 小时制)。

第三位 *:表示日。

第四位 *:表示月。

第五位 *:表示星期。

--cleanup:更新后删除旧镜像,释放存储空间。

点击完成,等待构建完成,如下图

飞牛 使用docker部署Watchtower 自动更新 Docker 容器-第4张图片-资源分享

部署完成之后就会立即执行一遍的,我配置了邮件通知,就会收到消息提醒

飞牛 使用docker部署Watchtower 自动更新 Docker 容器-第5张图片-资源分享

查看运行日志,拉取并且创建成功

飞牛 使用docker部署Watchtower 自动更新 Docker 容器-第6张图片-资源分享

镜像 拉取不下来的,可以试着换换镜像源

飞牛 解决Docker无法拉取镜像的问题

其他配置参数看官方文档

https://containrrr.dev/watchtower/arguments/


关注公众号

标签: 飞牛 fnOS docker