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

基础运行模式

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

Leave a Reply

Your email address will not be published. Required fields are marked *