自动管理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
这个命令临时查看参数帮助帮助