四时宝库

程序员的知识宝库

使用watchtower自动更新docker容器


快速启动的标准命令

这种模式下,默认每5分钟自动检测一次镜像文件是否有发布更新。修改检测频率看下文。

docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower

指定容器更新

以更新nextcloud和mysql容器为例,可以一行写,容器名之间加空格。

docker run -d \
--name watchtower \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--cleanup \
nextcloud \
mysql \

在启动参数的最后面增加容器名,可以使用docker ps 确定下

清理旧镜像

镜像在更新后旧镜像标签会变为none,长期自动更新会导致过多的none镜像占用空间,加入--cleanup参数可以在每次更新后自动删除none镜像.

docker run -d \
--name watchtower \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--cleanup

配置自动更新频率

Watchtower 默认每 5 分钟执行一次,可以手动指定参数,调整运行时间。建议使用-s,使用cron表达式。如:"0 0 3 * * * " 即每天凌晨3点更新



注意事项

  • -V参数似乎只能按照固定的模式启动,手动指定其他目录会导致出错
  • 当使用 -s 参数来配置定时更新时,由于容器内默认为 UTC 时间,上述设置的 凌晨1点 实际上是北京时间 早上9点 .可以通过加上 -e TZ=Asia/Shanghai 环境变量来定义时区,此时配置的时间则为北京时间.

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接