使用 watchtower 自动更新 Docker 容器的镜像
本文以在群晖下,使用 docker compose 部署为例:
-
在
docker
文件夹下,新建文件夹watchtower
-
创建文件
docker-compose.yml
,内容如下,根据需要修改参数:1
2
3
4
5
6
7
8
9
10
11services:
watchtower:
image: containrrr/watchtower
container_name: watchtower
environment:
- TZ=Asia/Shanghai
- WATCHTOWER_CLEANUP=true # 更新后移除旧的镜像
- WATCHTOWER_SCHEDULE=0 0 7 * * * # 设置 cron 定时任务
volumes:
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped更多配置项及其环境变量,请参考官方文档
将文件保存到刚才创建的
docker/watchtower
文件夹里 -
SSH 连接群晖,挂载到
docker/watchtower
,执行命令1
sudo docker-compose up -d
容器启动后,将按照设定自动检查更新。如检测到某容器的镜像有更新,将下载最新镜像,并自动重启该容器。
Q:我不想某容器被 watchtower 自动更新重启,应该怎么做?
A:在容器运行时添加 Label com.centurylinklabs.watchtower.enable=false
即可。请参见官方文档介绍。
这里提供一个 docker-compose.yml
的例子:
1 | services: |