Docker更新容器镜像神器–Watchtower
本文最后更新于 2020年09月26日

简介

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

简单事例

# 自动更新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更新

原创声明
本文由 NG6 于2019年06月16日发表在 sleele的博客
如未特殊声明,本站所有文章均为原创;你可以在保留作者及原文地址的情况下转载
转载请注明:Docker更新容器镜像神器–Watchtower | sleele的博客

评论

  1. 光光
    Windows Chrome
    4年前
    2020-12-12 13:56:28

    不靠谱啊,容器是成功更新了,但是里面的配置全没了

    • NG6
      光光
      博主
      Macintosh Chrome
      3年前
      2021-6-21 15:09:44

      @光光 配置文件请做持久化,例如-v $PWD/config:/config

      • steptochange
        NG6
        Windows Chrome
        2年前
        2022-8-09 16:20:23

        @NG6 大神能不能详细说一下怎么用?
        $ docker run -d
        –name watchtower
        –restart=always
        -e TZ=Asia/Shanghai
        -v /var/run/docker.sock:/var/run/docker.sock
        -v $PWD/config:/config
        containrrr/watchtower –cleanup –schedule “0 0 4 *”
        nginx redis

        这样对吗?

        • NG6
          steptochange
          博主
          Macintosh Chrome
          2年前
          2022-8-09 16:58:14

          @steptochange 不是这个意思的
          docker容器被销毁后重新创建,配置文件如果没有被挂载本地文件系统,那么会随着容器一起消失
          每个容器的配置文件挂载点不一样,根据镜像的制作者写的文档进行调整,比如说nginx的配置文件在/etc/nginx,那么就把这个位置挂载到本地

          watchtower没有配置文件,都是通过命令,所以不需要挂载

          • steptochange
            NG6
            Windows Chrome
            2年前
            2022-8-09 17:06:09

            @NG6 懂了,也就是说在宿主目录里面建立对应容器的配置文件夹,然后再创建容器的时候把宿主目录里面创建的配置文件夹映射为容器的配置目录,这样更新容器就不会丢失配置了是吧

          • NG6
            steptochange
            博主
            Macintosh Chrome
            2年前
            2022-8-09 17:28:24

            @steptochange 是的

          • steptochange
            NG6
            Windows Chrome
            2年前
            2022-8-09 17:35:59

            @NG6 多谢

  2. 海淘
    Windows Edge
    4年前
    2020-12-03 19:26:30

    有简单点的教程吗?群晖上怎么部署呢?谢谢!

  3. NG6
    博主
    Macintosh Safari
    5年前
    2020-3-16 19:45:24

    watchtower不是5个,是6个字符

  4. 匿名
    Windows Chrome
    5年前
    2019-9-09 16:45:22

    如果想用cron式,可以用这个参数
    –schedule “0 0 4 * * *”

  5. 匿名
    Windows Vivaldi
    5年前
    2019-6-22 17:01:58

    docker run -d \
    –name watchtower \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower –cleanup –schedule * 45 3 * * * \
    rsshub_service.rsshub_1
    这个写法有啥问题吗?自动退出,不知啥原因

    • NG6
      匿名
      博主
      Macintosh Safari
      5年前
      2019-6-23 11:40:56

      @匿名 参数不对,就用我示例的–interval 600

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇