本文作者:丁辉
Docker部署Watchtower管理容器更新
介绍
Watchtower 是一个开源的容器监控和自动更新工具,设计用于Docker容器环境。它可以监控正在运行的容器及其使用的镜像,当发现镜像有更新时,自动拉取新镜像并重新启动容器。这种自动化管理方式有助于确保部署的应用保持最新状态,从而减少安全风险和改进功能。
快速开始
1 | docker run -d \ |
所有容器都会自动更新,也包括 Watchtower 本身。
其他启动参数
自动清除旧镜像
1
2
3
4
5
6docker run -d \
--name watchtower \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--cleanup--cleanup
选项可以简写为-c
1
2
3
4
5docker run -d \
--name watchtower \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower -c选择性自动更新
1
2
3
4
5
6docker run -d \
--name watchtower \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower -c \
nginx redis配置容器更新列表
1
vi ~/.watchtower.list
内容如下
1
2nginx
reidis启动 Watchtower 容器
1
2
3
4
5
6docker run -d \
--name watchtower \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower -c \
$(cat ~/.watchtower.list)设置单个容器自动更新标签
1
2
3
4
5docker run -d \
--name nginx \
--restart always \
--label com.centurylinklabs.watchtower.enable=true \
nginx:latest启动 Watchtower 容器
1
2
3
4
5
6docker run -d \
--name watchtower \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower -c \
--label-enable--label-enable
可以简写为-e
1
2
3
4
5docker run -d \
--name watchtower \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower -ce设置自动更新检查频率
--interval
设置更新检测时间间隔单位为秒。1
2
3
4
5
6docker 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 点检查一次更新
1
2
3
4
5
6docker run -d \
--name watchtower \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower -c \
--schedule "0 0 2 * * *"
手动更新
检查 nginx 是否需要更新
1
2
3
4
5docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower -c \
--run-once \
nginx--run-once
可以简写为-R
1
2
3
4docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower -cR \
nginx当容器设置过
com.centurylinklabs.watchtower.enable=false
参数则不会更新
I'm so cute. Please give me money.
- 本文链接: https://blog.offends.cn/Kubernetes/Docker/Docs/Docker部署Watchtower管理容器更新.html
- 版权声明: 本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。