使用 Watchtower 自动更新 Docker 镜像

2023-3-14|2024-9-7
D_SUPER
D_SUPER
type
Post
status
Published
date
Mar 14, 2023
slug
docker_watchtower
summary
使用 Watchtower 自动更新全部 Docker 镜像。
category
服务器
tags
Docker
好用软件
建站
icon

使用 Docker 可以迅速在 VPS 上运行服务,而不用配置和修改环境。Docker 服务的更新通过拉取最新镜像实现,当运行的 Docker 数目多了之后,保持镜像最新就成为了一项琐碎的工作。使用 Watchtower 可以便捷地监控 Docker 服务是否有最新镜像,自动拉取最新镜像、更新服务并删除旧有镜像。
Docker compose 是用于定义和运行多容器 Docker 应用程序的工具。在配置好 docker-compose.yml 文件后,使用 docker compose up -d 即可方便上线服务,我的全部 Docker 服务都使用这一方式部署。
以下是 Watchtower 的 docker-compose.yml 文件设置。

Docker Compose 文件

version: "3.3" services: watchtower: image: containrrr/watchtower:latest container_name: watchtower restart: unless-stopped volumes: - /var/run/docker.sock:/var/run/docker.sock environment: - TZ=Asia/Shanghai - WATCHTOWER_DEBUG=true - WATCHTOWER_CLEANUP=true - WATCHTOWER_SCHEDULE=0 0 4 * * ? # - WATCHTOWER_POLL_INTERVAL=43200
其中,WATCHTOWER_SCHEDULEWATCHTOWER_POLL_INTERVAL 均为设置 Watchtower 运行频次的指令,两个方式任选一个。前者使用 Cron 格式,在固定时间运行;后者的单位为秒(S),经过固定时间间隔运行。

设置 Watchtower 通知服务

Watchtower 使用 Shutrrr 发送通知。以下为设置 Telegram bot 通知:
- WATCHTOWER_LIFECYCLE_HOOKS=True - WATCHTOWER_NOTIFICATIONS=shoutrrr - WATCHTOWER_NOTIFICATION_URL=telegram://bot_token@telegram/?channels=user-id
  • 通过 @BotFather 创建自己的通知机器人,并获取 bot_token
推荐 IOS 用户使用 Bark 设置通知[*]: - WATCHTOWER_NOTIFICATION_URL=
- WATCHTOWER_LIFECYCLE_HOOKS=True - WATCHTOWER_NOTIFICATIONS=shoutrrr - WATCHTOWER_NOTIFICATION_URL=bark://:devicekey@host/path

设置部分 Docker 禁止更新

在不希望被 Watchetower 监控更新的 Docker 服务中添加环境变量[*]
lable: - com.centurylinklabs.watchtower.enable = false

推荐阅读

 
💡
有关 Watchtower 安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~

命运数字能“提示”你的命运吗?zotero 使用 AList 提供 WebDAV 同步 | 提高 AList 上传文件大小限值
  • Twikoo
  • Waline
  • Cusdis