3.5 KiB
3.5 KiB
本文作者:丁辉
Docker部署Watchtower管理容器更新
介绍
Watchtower 是一个开源的容器监控和自动更新工具,设计用于Docker容器环境。它可以监控正在运行的容器及其使用的镜像,当发现镜像有更新时,自动拉取新镜像并重新启动容器。这种自动化管理方式有助于确保部署的应用保持最新状态,从而减少安全风险和改进功能。
快速开始
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower
所有容器都会自动更新,也包括 Watchtower 本身。
其他启动参数
-
自动清除旧镜像
docker run -d \ --name watchtower \ --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower \ --cleanup--cleanup选项可以简写为-cdocker run -d \ --name watchtower \ --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower -c -
选择性自动更新
docker run -d \ --name watchtower \ --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower -c \ nginx redis -
配置容器更新列表
vi ~/.watchtower.list内容如下
nginx reidis启动 Watchtower 容器
docker run -d \ --name watchtower \ --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower -c \ $(cat ~/.watchtower.list) -
设置单个容器自动更新标签
docker run -d \ --name nginx \ --restart always \ --label com.centurylinklabs.watchtower.enable=true \ nginx:latest启动 Watchtower 容器
docker run -d \ --name watchtower \ --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower -c \ --label-enable--label-enable可以简写为-edocker run -d \ --name watchtower \ --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower -ce -
设置自动更新检查频率
-
--interval设置更新检测时间间隔单位为秒。docker run -d \ --name watchtower \ --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower -c \ --interval 3600 -
--schedule设置定时检测更新时间。格式为 6 字段 Cron 表达式,而非传统的 5 字段,第一位是秒。比如每天凌晨 2 点检查一次更新
docker run -d \ --name watchtower \ --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower -c \ --schedule "0 0 2 * * *"
-
-
手动更新
检查 nginx 是否需要更新
docker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower -c \ --run-once \ nginx--run-once可以简写为-Rdocker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower -cR \ nginx当容器设置过
com.centurylinklabs.watchtower.enable=false参数则不会更新