在自动更新过程中,尽管会出现连接超时的报告,但容器仍能够正常更新。此外,配置通知功能后,每次执行时都会通知存在的错误。
若不需要通知,可删除通知配置相关的环境变量。
Watchtower 是一个用于自动更新 Docker 容器的开源工具。它能够检测您运行的 Docker 容器是否有新版本可用,并自动更新这些容器,从而帮助您保持容器应用程序的安全性和稳定性。
主要功能:
自动容器更新:Watchtower 可以定期检查 Docker Hub 或者其他容器仓库中的镜像,如果发现新版本,它将自动下载新的镜像并更新正在运行的容器。
定期检查:您可以配置 Watchtower 以定期检查容器,以确保容器始终处于最新状态。您可以设置检查的时间间隔。
邮件通知:Watchtower 可以配置为在更新容器时发送邮件通知,以便您及时了解容器的变化情况。
灵活性:您可以选择性地排除某些容器不受自动更新的影响,以满足特定需求。
日志记录:Watchtower 会记录容器更新的日志,以便您可以随时查看更新历史。
支持多种容器仓库:除了 Docker Hub,Watchtower 还支持其他容器仓库,因此您可以使用自己喜欢的容器镜像。
1、compose配置
networks:
app_network:
external: true
services:
watchtower:
image: containrrr/watchtower:latest
volumes:
- '/var/run/docker.sock:/var/run/docker.sock'
- /etc/localtime:/etc/localtime:ro
environment:
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_ROLLING_RESTART=true
- WATCHTOWER_SCHEDULE=0 0 * * * ?
# - WATCHTOWER_POLL_INTERVAL=3600
- WATCHTOWER_NO_STARTUP_MESSAGE=true
- WATCHTOWER_TIMEOUT=60s
- WATCHTOWER_NOTIFICATION_EMAIL_DELAY=xx
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=xx
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=xx
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=465
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER=xx
- WATCHTOWER_NOTIFICATION_EMAIL_TO=xx
- WATCHTOWER_NOTIFICATION_EMAIL_FROM=xx
- WATCHTOWER_NOTIFICATIONS=email
- WATCHTOWER_NOTIFICATIONS_LEVEL=info
container_name: watchtower
restart: always
networks:
- app_network
2、环境变量
2.1、参数
2.2、邮箱通知
2.3、容器标签禁用监视更新
services:
mysql:
container_name: mysql
image: mysql:8
。。。
# 添加标签内容,禁用此容器的监视更新
labels:
- com.centurylinklabs.watchtower.enable=false
以mysql为例:
在
compose
配置中添加labels
节点;labels
节点下添加- com.centurylinklabs.watchtower.enable=false
关闭容器的监视更新;此时
Watchtower
轮训检查时将会忽略mysql
容器。