watchtower - 一个用于自动更新 Docker 容器镜像的实用工具
简介
watchtower 是一个用于自动更新 Docker 容器镜像的实用工具,它能够自动监控指定容器的更新,能够自动拉取最新镜像并实现平滑部署。
github 地址:https://github.com/containrrr/watchtower
官网:https://containrrr.dev/watchtower/
启动
服务器执行标准启动命令,watchtower 会以每 5 分钟检查 docker 所有容器是否已达到最新版本,如不是,则拉取最新镜像,停止运行容器,以最初的启动命令重新启动容器
shell
1 | docker run -d \ |
可通过 --cleanup
删除旧版本镜像
shell
1 | docker run -d \ |
指定容器更新
可在标准启动命令后加上指定容器名,便可指定容器更新
shell
1 | docker run -d \ |
容器名指的是启动容器时设置 --name
参数的名称,比如我的 alist 启动命令:
shell
1 | docker run -itd \ |
则 alist 容器名为 alist,更新 alist 时我只需要运行
shell
1 | docker run -d \ |
自动更新频率
可通过 --interval
(简写 -i
)参数,配置更新周期,默认 300 秒
或者 --schedule
,(简写 -s
) 配置定时更新,使用 Cron表达式
, 例如 "0 0 1 * * *"
. 即每天凌晨 1 点更新
配置了自动更新频率需要确定时区为 Asia
shell
1 | docker run -d \ |
手动更新
可以通过 --run-once
实现运行 watchtower 容器更新后停止运行,即运行一次
还可添加 --rm
删除 watchtower 镜像。
shell
1 | docker run --rm -d \ |
总结
虽然可以通过停止容器,拉取镜像,重新运行容器这三步操作来实现 watchtower 的功能,但是它能够简化命令,减少重新部署容器的运行参数错误,定时更新等等,是一个高效率的更新容器方式。
参考文章
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 枫叶!