本文最后更新于 2020年09月26日
)
简介
Watchtower可以帮助我们快速的自动的更新容器和镜像,完全自动化不需要人工参与
简单事例
1 2 3 4 5 6 | # 自动更新rsshub,并清理老旧镜像 docker run -d \ --name watchtower \ - v /var/run/docker .sock: /var/run/docker .sock \ containrrr /watchtower --cleanup --interval 600 \ rsshub_service.rsshub_1 |
在命令结尾处添加你要更新的容器名或ID
–参数:请参照官方文档:https://containrrr.github.io/watchtower/
支持的一些参数
更新nginx和redis容器
$ docker run -d \ --name watchtower \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower \ nginx redis
只更新一次nginx和redis容器
$ docker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower \ --run-once \ nginx redis
更新容器后清除老旧镜像,600秒检测一次docker hub是否有新的镜像
$ docker run -d \ --name watchtower \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower --cleanup --interval 600 \ nginx redis
更多参数请参照官方文档https://containrrr.github.io/watchtower/arguments/,Watchtower还支持邮件通知等更多功能,甚至可以可以控制其他网络的docker,可谓是十分强大,并且非常轻量
2020.04.01更新
cron表达式更新,watchtower和平常5个字符的cron表达式不一样,需要6个字符,并且第二位不是时
,第三位才是,这个例子是每天早上4点检查更新
https://github.com/containrrr/watchtower/issues/160
$ docker run -d \ --name watchtower \ --restart=always \ -e TZ=Asia/Shanghai \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower --cleanup --schedule "0 0 4 * * *" \ nginx redis
前段时间watchtower终于支持TZ了。
https://github.com/containrrr/watchtower/pull/461
watchtower可以使用TZ参数,默认为UTC 0