244
发布于 2026-02-09 / 2 阅读

在绿联NAS上搭建Watchtower,自动更新容器

应用简介

Watchtower 是一个用于 自动更新 Docker 容器 的开源工具。它能够检测运行中的 Docker 容器是否有新版本,并自动更新这些容器,从而提升容器的 安全性稳定性

功能特点

自动容器更新:定期检测容器镜像更新并自动升级。

定时检查:支持配置检查间隔,确保容器始终保持最新状态。

通知功能:支持邮件通知或其他方式,告知更新详情。

灵活排除:支持排除特定容器,使其不受自动更新的影响。

日志记录:记录所有更新操作的日志,便于查询历史。

多仓库支持:兼容 Docker Hub 及其他镜像仓库,可满足不同需求。

使用 Docker Compose 部署容器

在 UGOS Pro 系统上,推荐使用项目 Docker Compose 快速部署容器,适合需同时管理多个容器的场景,这种方法简化了容器的部署与管理工作。以下是使用 Docker Compose 部署 Watchtower 的详细步骤。

进入 Docker 项目界面

在 UGOS Pro 系统中,打开 Docker 应用,点击【项目】 > 【创建】,启动项目创建向导。

配置 Docker Compose 文件

在项目创建向导中,上传以下 Watchtower 的 Docker Compose 配置文件:

services:
    watchtower:
        container_name: watchtower
        image: containrrr/watchtower:latest # 使用最新镜像
        restart: always # 设置自动重启策略
        volumes:
            - '/var/run/docker.sock:/var/run/docker.sock'
            - '/etc/localtime:/etc/localtime:ro'
        environment:
            - WATCHTOWER_CLEANUP=true # 更新后自动删除旧映像
            - WATCHTOWER_ROLLING_RESTART=true # 容器启动模式
            - WATCHTOWER_POLL_INTERVAL=86400 # 每 24 小时检查一次更新
            - WATCHTOWER_NO_STARTUP_MESSAGE=true # 禁止在 Watchtower 启动时发送启动消息

Docker Compose 配置说明

配置项

配置值

说明

container_name

watchtower

设置容器名称为 watchtower,便于识别和管理

image

containrrr/watchtower:latest

使用 Watchtower 的最新版镜像,自动获取最新更新功能

restart

always

设置容器在异常退出或系统重启后自动重启,增强服务可用性

volumes[0]

/var/run/docker.sock:/var/run/docker.sock

授权 Watchtower 管理宿主机上的 Docker 容器(必须挂载)

/etc/localtime:/etc/localtime:ro

让容器与宿主机保持相同的时间设置,确保日志时间准确

environment

WATCHTOWER_CLEANUP=true

自动删除旧版本镜像,节省磁盘空间

WATCHTOWER_ROLLING_RESTART=true

启用滚动重启机制,逐个容器更新重启,减少服务中断

WATCHTOWER_POLL_INTERVAL=86400

设置每 86400 秒(即 24 小时)检查一次镜像更新

WATCHTOWER_NO_STARTUP_MESSAGE=true

启动时不输出提示信息,使日志更干净

更多配置参数请参考 Watchtower 官方文档:Watchtower Arguments

部署项目

上传配置文件后,点击【立即部署】,系统会自动拉取镜像并启动容器。

禁用特定容器的自动更新

如果某些容器不需要更新,可以通过配置 labels 节点禁用 Watchtower 的更新监视功能。

示例说明:

1. 在目标容器(jellyfin)的 docker-compose.yaml 文件中添加 labels 节点。

2. 使用 com.centurylinklabs.watchtower.enable=false 标签来关闭 Watchtower 对该容器的更新监视。

services:
    jellyfin:
        container_name: jellyfin
        image: jellyfin:8
        。。。
        # 添加标签内容,将禁用此容器的监视更新
        labels:
            - com.centurylinklabs.watchtower.enable=false

查看容器更新

您可以在Watchtower容器的日志中查看更新信息。每当到达环境变量指定的时间,Watchtower就会开始检查并更新容器镜像。

进入Watchtower容器的日志页面,查看最近的更新记录和状态。

使用提示

请确保Watchtower的环境变量已正确配置,以便定时检查和更新容器镜像。

常见的环境变量包括WATCHTOWER_POLL_INTERVAL,用于设置检查更新的时间间隔。

注意事项

1. 本教程涉及的镜像由第三方开发维护,教程仅作参考,绿联不承担因操作不当、软件漏洞或镜像更新引发的风险,如文件异常、数据泄露等。请选用可信镜像,确保系统和数据安全。

2. 容器文件路径可自行设定,网页访问时,容器端口和本地端口需一致,不同容器的本地端口不能冲突。

3. 容器网页链接仅在 bridge 桥接模式下可访问。

4. 镜像仅提供搭建教程,具体使用和玩法可网上査询,配置变动和 bug 修复请关注官方信息。

5. 建议将 Docker 配置目录存于 SSD 硬盘,防止机械硬盘影响性能。