Watchtower是一款开源的Docker容器管理工具,其主要功能在于自动更新运行中的Docker容器
Watchtower 支持以下功能:
-
自动拉取镜像并更新容器。
-
配置邮件通知。
-
定时执行容器更新任务。
compose搭建Watchtower
1、新建文件夹
先在任意位置创建一个 wa tchtower 文件夹,用于存放docker-compose.yaml文件,参考如下
2、新增项目
使用docker的compose方式构建,点击新增项目
3、创建项目
输入项目名称,路径选择你刚刚创建的 wa tchtower 文件夹,点击创建docker-
compose.yml把以下代码拷贝进去,创建项目后立即启动打钩
带邮箱通知版本
#邮件通知配置注意看注释
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:更新后删除旧镜像,释放存储空间。
点击完成,等待构建完成,如下图
部署完成之后就会立即执行一遍的,我配置了邮件通知,就会收到消息提醒
查看运行日志,拉取并且创建成功
镜像 拉取不下来的,可以试着换换镜像源
其他配置参数看官方文档