Docker更新容器镜像神器–Watchtower

admin

本文最后更新于 2020年09月26日

简介

Watchtower可以帮助我们快速的自动的更新容器和镜像,完全自动化不需要人工参与

简单事例

Code example
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

2020.04.01更新




1.277272s