
Watchtower · 自动化 Docker 容器镜像更新工具 · 中文部署与使用全指南
项目仓库: https://github.com/containrrr/watchtower
开源协议:Apache-2.0 · 实现语言:Go ·
镜像:containrrr/watchtower · 形态:单容器 · 无对外端口
状态说明:官方 README 顶部标注 "This project is no longer maintained"(见 discussions/2135);官方也明确 Watchtower 面向 homelab / 媒体中心 / 本地开发环境,不建议用于商业或生产环境(生产应上 Kubernetes / k3s)。
1 项目简介
Watchtower(仓库名
containrrr/watchtower)是一个自动更新 Docker
容器基础镜像的进程:你只要把新镜像推到 Docker Hub
或自己的镜像仓库,Watchtower
就会拉取新镜像、优雅停掉现有容器,再用最初部署时的参数重启它。
1.1 核心信息一览
| 项目项 | 内容 |
|---|---|
| 项目名称 | Watchtower |
| 仓库地址 | github.com/containrrr/watchtower |
| 项目定位 | 自动化 Docker 容器镜像更新 |
| 开源协议 | Apache-2.0 |
| 实现语言 | Go |
| 镜像 | containrrr/watchtower |
| 对外端口 | 无(仅读 Docker socket) |
| 项目状态 | 官方宣布不再维护 |
1.2 适用场景
- homelab / 媒体中心 / 本地开发环境,希望容器镜像自动更新。
- 不想每次手动
docker pull && docker rm -f && docker run。
1.3 能力边界(官方口径)
- 官方面向 homelab、媒体中心、本地开发;不建议商业 / 生产环境使用,生产应上 Kubernetes。
- 项目已不再维护。
2 功能特性
- 自动检测镜像更新,拉取新镜像。
- 优雅停止旧容器,用原参数重启。
- 可按容器标签选择更新对象。
- 可定时调度检查间隔。
3 官方界面预览
Watchtower 是无界面的后台容器,日志即输出。封面为官方标识。
4 官方跳转链接汇总
| 类别 | 链接 | 说明 |
|---|---|---|
| 仓库主页 | https://github.com/containrrr/watchtower | 源码与 README |
| 文档 | containrrr.dev/watchtower | 完整文档 |
| 停止维护说明 | discussions/2135 | 官方公告 |
| Docker 镜像 | hub.docker.com/r/containrrr/watchtower | 镜像 |
5 前置要求
- Docker。
- 挂载
/var/run/docker.sock才能检测和重启容器。
6 方式一:Docker 一键运行(官方)
docker run --detach \
--name watchtower \
--volume /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower默认会周期性检查所有容器的镜像更新;更新时拉新镜像、优雅停旧容器、用原参数重启。
7 方式二:指定容器 / 调度参数
通过命令行参数限定只更新某些容器、设置检查间隔、清理旧镜像等(详见官方文档
containrrr.dev/watchtower)。
8 配置项说明
- 配置通过命令行参数传入(如
--interval、--cleanup、指定容器名)。 - 容器标签可控制是否被 Watchtower 更新。
- 无对外端口,只读 Docker socket。
9 常用运维命令
docker logs -f watchtower # 看更新日志
docker restart watchtower
docker rm -f watchtower # 卸载10 常见故障排查
- 没更新容器:确认挂载了
/var/run/docker.sock;目标容器是否被标签排除。 - 更新后容器配置丢了:Watchtower 用"最初部署参数"重启,compose 部署的容器建议用 compose 管理,避免状态漂移。
- 项目已停止维护:长期生产考虑替代方案(如 watchtower 替代品或 k3s)。
11 风险与合规说明
- Apache-2.0 许可;官方已宣布不再维护,且明确不建议商业 / 生产环境使用。
- Watchtower 挂载 Docker socket,等同完整 Docker 控制权;自动更新可能引入 breaking change,生产慎用。
- 本文命令、参数来自官方 README 与文档,随版本可能调整,以 containrrr.dev/watchtower 为准。