Hello New World

  • 参数说明:
  • 验证 Watchtower 是否正常工作
  • 配置命令
  • 参数说明
  • 验证配置
  • 日志示例
  • 停止并删除 Watchtower 容器
  • 验证 Watchtower 是否已停止
  • 删除 Watchtower 镜像(可选)
  • 相关内容
  • 首页
  • VPS测评
  • VPS优惠
  • 实用教程
  • 随笔记录
  • 杂七杂八
  • Telegram频道
  • 常用工具
    • WHOIS查询
  • 文章归档
  • 榜上有名

DigitalVirt Docker Flash Sale Google IDC.WIKI IPV6 IPV6 only Linux NAT VPS Oracle Tototel v.ps Virmach wawo 免费VPS 台湾VPS 喵云 微基主机 新加坡VPS 日本VPS 欧洲VPS 流媒体解锁 甲骨文 美国VPS 香港VPS

利用 Watchtower 定时检查哪吒面板新版本并自动更新

  • Hello World
  • 2025-01-08
  • 0

由于哪吒面板 V1 最近更新频繁,我们可以设置为每隔 1 小时或者半小时检查更新,并在更新后删除旧的镜像。

使用 Watchtower 来自动检查并更新 nezha-dashboard 容器并删除旧镜像,需要配置 Watchtower 以监控该容器并设置清理旧镜像的选项。以下是具体步骤:

docker run -d \
  --name watchtower \
  --restart always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower \
  nezha-dashboard \
  --cleanup
参数说明:
  • --name watchtower: 设置容器名称为 watchtower。
  • --restart always: 保证 Watchtower 在 Docker 服务重启后自动启动。
  • -v /var/run/docker.sock:/var/run/docker.sock: 挂载 Docker 的 socket,使 Watchtower 能够与 Docker 引擎通信。
  • containrrr/watchtower: Watchtower 的镜像名称。
  • nezha-dashboard: 指定需要监控的容器名称。
  • --cleanup: 在更新容器后自动删除旧的未使用镜像。

验证 Watchtower 是否正常工作

查看 Watchtower 的日志,确认其是否能够正常检测到 nezha-dashboard 容器的更新:

docker logs -f watchtower

日志中应显示类似以下内容:

INFO[0000] Watching containers for updates...
INFO[0001] Checking for updates on container "nezha-dashboard"
INFO[0002] Found new image for "nezha-dashboard". Pulling image ghcr.io/nezhahq/nezha:latest
INFO[0003] Stopping and removing container "nezha-dashboard"
INFO[0004] Creating new container for "nezha-dashboard"
INFO[0005] Removing old image for "nezha-dashboard"

要让 Watchtower 每隔半小时检查更新并在有更新时自动更新容器并删除旧镜像,可以通过以下方式实现:

配置命令

运行以下命令启动 Watchtower:

docker run -d \
  --name watchtower \
  --restart always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -e TZ=Asia/Hong_Kong \
  containrrr/watchtower \
  nezha-dashboard \
  --cleanup \
  --schedule "0 */30 * * *"
参数说明
  • -e TZ=Asia/Hong_Kong: 这个环境变量设置容器的时区为 HKT(即香港时间)。这样 Watchtower 将使用本地时区来解析 CRON 表达式。
  • --schedule "0 */30 * * *": 在每小时的第 0 分钟和每 30 分钟时执行检查。
  • --cleanup: 在更新后自动删除旧的未使用镜像,避免占用存储空间。
  • nezha-dashboard: 指定只监控名为 nezha-dashboard 的容器。

验证配置

查看容器是否启动成功

docker ps

确认 watchtower 容器在运行。

查看日志
观察 Watchtower 的日志,确保定时任务正确运行:

docker logs -f watchtower
  1. 日志会显示每 30 分钟执行一次更新检查的记录。

日志示例

日志中应出现类似以下内容:

time="2024-12-01T00:08:32+08:00" level=info msg="Watchtower 1.7.1"
time="2024-12-01T00:08:32+08:00" level=info msg="Using no notifications"
time="2024-12-01T00:08:32+08:00" level=info msg="Only checking containers which name matches \"nezha-dashboard\""
time="2024-12-01T00:08:32+08:00" level=info msg="Scheduling first run: 2024-12-01 00:30:00 +0800 HKT"
time="2024-12-01T00:08:32+08:00" level=info msg="Note that the first check will be performed in 21 minutes, 27 seconds"

这样配置后,Watchtower 将在每小时的第 0 分钟和每 30 分钟时检查 nezha-dashboard 容器是否有更新,并在有新版本时自动更新,随后清理旧镜像。


要取消通过 Watchtower 设置的定时更新和自动删除旧镜像的任务,可以按照以下步骤操作:

停止并删除 Watchtower 容器

运行以下命令停止并删除 Watchtower 容器:

docker stop watchtower && docker rm watchtower

此操作会彻底关闭和移除 Watchtower,从而停止所有由它管理的定时更新任务。

验证 Watchtower 是否已停止

运行以下命令,确认 Watchtower 容器已不再运行:

docker ps -a | grep watchtower

如果没有输出,说明 Watchtower 已成功停止和删除。

删除 Watchtower 镜像(可选)

如果不再需要 Watchtower,可以删除其镜像以释放存储空间:

docker rmi containrrr/watchtower

通过这些步骤,Watchtower 的自动更新功能会被完全取消,并恢复到手动管理模式。

相关内容
  1. Watchtower – 自动更新 Docker 镜像与容器
  2. 哪吒面板 V1 绑定 Github oauth2 登录
© 2025 Hello New World
Theme by Wing
  • {{ item.name }}
  • {{ item.name }}