🚀 Docker 自动化更新神器 Watchtower:一键设置,永久告别手动维护!
条评论前言:解放双手,实现容器维护自动化
哈喽大家好!
在 NAS 上部署了众多 Docker 容器后,手动检查和更新是一项繁琐且容易遗忘的工作。今天,我为大家分享一个真正能解放双手的 Docker 神器——Watchtower!
Watchtower 会根据你设定的时间,静默地检查并更新所有需要更新的容器,真正实现容器维护自动化。本篇教程将带你完成 Watchtower 的部署,并重点解析几个核心的安全配置,让你用得放心又省心!
🎬 核心部署:Watchtower 的 Compose 配置解析
第一步:创建项目目录
- 在你的 NAS 文件管理中,创建一个新的目录,例如命名为
watchtower。 - 这个目录将用于存放 Watchtower 的配置和数据(如果需要)。
第二步:部署 Compose 文件(核心安全设置)
Watchtower 通过 Docker Compose 部署。在粘贴代码之前,我们必须设置几个关键的参数,确保自动化更新的安全性和效率。
新增 Compose 项目:在 Docker 管理工具中(如飞牛 Compose),新增项目并选择刚才创建的目录。
粘贴代码:将以下代码粘贴进来,并根据你的需求修改环境变量:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16version: '3.8'
services:
watchtower:
image: containrrr/watchtower
container_name: watchtower
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock # 必须挂载,以便监控
environment:
- TZ=Asia/Shanghai # 设置时区,方便日志查看
# 如果需要通过环境变量排除容器,可以在这里设置 WATCHTOWER_SCOPE 或 WATCHTOWER_IGNORE
# 🔑 核心功能通过 command 传入,优先级最高
# 建议实际使用时,将 --interval 120 修改为 --interval 86400 (24小时)
command: --interval 120 --cleanup --rolling-restart # jellyfin关键参数解析:
核心功能(
--interval、--cleanup、--rolling-restart)是通过command传递给 Watchtower 容器的启动命令。
| Command 参数 | 作用说明 | 建议值 |
|---|---|---|
--interval <秒> |
检查间隔时间(秒)。Demo 中为 120 秒。实际使用中,建议至少设置为 86400 (24 小时),避免资源浪费。 |
86400 |
--cleanup |
清理旧镜像。启用后,更新成功立即删除旧镜像,节省磁盘空间。 | 启用 |
--rolling-restart |
滚动更新。启用后,同时有多个容器更新时,会逐个重启,减少对资源和服务的冲击。 | 启用 |
- 开始构建:点击确认,启动 Watchtower 容器。
✨ 监控与维护:通过日志查看工作状态
Watchtower 是一个没有 Web 界面的工具,它在后台静默运行。
1. 查看日志
部署完成后,我们需要通过查看容器日志来确认它的工作状态:
- 更新完成:整个更新流程(停止旧容器 -> 拉取新镜像 -> 启动新容器)完成后,日志会给出本次检查的总结,例如:
共检查了 X 个容器,更新了 Y 个,0 个失败。
现在,你已经成功将容器更新的繁琐工作交给了 Watchtower!
总结:让你的 NAS 保持最新!
Watchtower 是实现 Docker 运维自动化的必备工具。通过简单的 Compose 配置,我们不仅实现了容器的自动更新,还通过 CLEANUP 和 ROLLING 参数确保了维护过程的效率和安全性。
从今天起,彻底告别手动更新的烦恼吧!
感谢大家的阅读。如果你在部署或使用中有任何疑问,欢迎在下方留言讨论。我们下期再见!
