FolderOpenDot自托管
不再过期:用新的Watchtower自动更新你的Docker!
901
2025/11/20·发布 2025/11/20

既然是自托管,很多情况下我们自然喜欢自动更新。

之前一直用 continrrr/watchtower来进行自动更新Docker,但最近的Docker更新之后接着沿用那个会出现 "Error response from daemon: client version 1.25 is too old" 的问题(参考GitHub)。

containrrr/watchtower #2126
githubIssue.statsUnavailable

随即发现这个原始的watchtower自己已经有2年没有更新了……但有人接过衣钵!那就是

nickfedor/watchtower
docker.dockerImage
docker.statsUnavailable

于是只需要把之前的docker替换一下即可。

另外一个点就是,默认情况下,watchtower不会自动清除旧的容器,空间就会一点点占用起来,直到塞满硬盘。但只需要加上 WATCHTOWER_CLEANUP = TRUE的话,就能自动清理了。

两个叠加,那么docker run就是!

Bash
1docker run --detach \
2  --name watchtower \
3  --restart always \
4  --volume /var/run/docker.sock:/var/run/docker.sock \
5  --env WATCHTOWER_CLEANUP=true \
6  nickfedor/watchtower

当然可以用docker compose:

YAML
1version: "3"
2services:
3  watchtower:
4    image: nickfedor/watchtower
5    container_name: watchtower
6    restart: always
7    volumes:
8      - /var/run/docker.sock:/var/run/docker.sock
9    environment:
10      - WATCHTOWER_CLEANUP=true
11      # 下面这个也是可选的,可以设置检查更新的频率,单位是秒,默认是86400秒(24小时)
12      # 比如我们想每6小时检查一次,就可以设置为 21600
13      - WATCHTOWER_POLL_INTERVAL=21600

把上面的内容保存成 docker-compose.yml 文件,然后在同一个文件夹下运行 docker compose up -d 就可以啦。

最后更新 11月20日 14:22
Docker

评论 (1)

zoram2025-11-20 14:22#1

支持,容器更新对不太了解docker的人来说确实挺麻烦的