--- title: Watchtower date: 2024-12-14T16:32:32+08:00 lastmod: 2025-09-25T11:22:46+08:00 --- # Watchtower ```yaml version: '3.8' services: watchtower: image: containrrr/watchtower:latest container_name: watchtower-updater volumes: - /var/run/docker.sock:/var/run/docker.sock restart: unless-stopped environment: - TZ=Asia/Shanghai # 时区 - WATCHTOWER_CLEANUP=true # 删除旧镜像 - WATCHTOWER_SCHEDULE=0 0 4 * * * #定时触发 - WATCHTOWER_POLL_INTERVAL=86400 #更新时间24小时 - WATCHTOWER_REMOVE_VOLUMES=true # 更新后删除匿名卷 - WATCHTOWER_INCLUDE_RESTARTING=true # 重启容器 - WATCHTOWER_RUN_ONCE=true # 只允许一次更新 command: - clouddrive2 # 容器名称或容器ID - portainer - zt healthcheck: test: ["CMD", "/watchtower", "--health-check"] # 启用健康检查 interval: 30s # 每 30 秒进行一次健康检查 retries: 3 # 健康检查失败后重试 3 次 start_period: 30s # 启动后等待 30 秒后开始健康检查 timeout: 10s # 健康检查超时 10 秒 ``` ```bash version: '3.8' services: watchtower: image: containrrr/watchtower:latest container_name: watchtower-updater volumes: - /var/run/docker.sock:/var/run/docker.sock restart: unless-stopped environment: - TZ=Asia/Shanghai # 时区 - WATCHTOWER_CLEANUP=true # 删除旧镜像 - WATCHTOWER_SCHEDULE=0 0 4 * * * # 定时触发 - WATCHTOWER_REMOVE_VOLUMES=true # 更新后删除匿名卷 - WATCHTOWER_INCLUDE_RESTARTING=true # 重启容器 healthcheck: test: ["CMD", "/watchtower", "--health-check"] # 启用健康检查 interval: 30s # 每 30 秒进行一次健康检查 retries: 3 # 健康检查失败后重试 3 次 start_period: 30s # 启动后等待 30 秒后开始健康检查 timeout: 10s # 健康检查超时 10 秒 ```