2024-10-17T10:04:20.png

自动管理docker容器更新的工具Watchtower

视频地址:https://youtu.be/238LNqAczk8

  • 基础运行模式

    
    docker run -d \
      --name watchtower \
      --restart unless-stopped \
      -v /var/run/docker.sock:/var/run/docker.sock \
      containrrr/watchtower
  • 指定容器更新

    
    docker run -d \
      --name watchtower \
      --restart unless-stopped \
      -v /var/run/docker.sock:/var/run/docker.sock \
      containrrr/watchtower \
      lobe-chat nginx
  • 按更新列表指定(维护灵活)

    
    docker run -d \
      --name watchtower \
      --restart unless-stopped \
      -v /var/run/docker.sock:/var/run/docker.sock \
      containrrr/watchtower \
      $(cat ~/.docker_update.list)

    注:也可使用容器更新标签进行容器标注的方法,此法麻烦且不灵活,知道就可以
    --label com.centurylinklabs.watchtower.enable=true

  • 清除旧容器参数

    
    docker run -d \
      --name watchtower \
      --restart unless-stopped \
      -v /var/run/docker.sock:/var/run/docker.sock \
      containrrr/watchtower -c \
      $(cat ~/.docker_update.list)
      
  • 更新频率参数

    
    docker run -d \
      --name watchtower \
      --restart unless-stopped \
      -v /var/run/docker.sock:/var/run/docker.sock \
      containrrr/watchtower -c \
      $(cat ~/.docker_update.list) \
      --interval 3600
  • 定时更新参数

    
    docker run -d \
      --name watchtower \
      --restart unless-stopped \
      -v /var/run/docker.sock:/var/run/docker.sock \
      containrrr/watchtower -c \
      $(cat ~/.docker_update.list) \
      --schedule "0 40 3 * * *"

    6字段的表达式,不是传统的5字段,顺序是:秒分时日月周

  • 手动一次性运行


docker run --rm \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower -c \
    --run-once \  
    $(cat ~/.docker_update.list) 

# --run-once 参数也可简写成-R和-c合并一期变成 -cR
最后总结:

我只是给出了一些常用的方法和参数,watchtower还有其他功能和使用形式,包括电子邮件通知、监视私人注册表的镜像、管理远程主机的容器、对于一般的朋友可能很少用到,大家可以到官方查看文档,也可以使用


docker run --rm containrrr/watchtower -h

这个命令临时查看参数帮助帮助

发表评论