既然是自托管,很多情况下我们自然喜欢自动更新。
之前一直用 continrrr/watchtower来进行自动更新Docker,但最近的Docker更新之后接着沿用那个会出现 "Error response from daemon: client version 1.25 is too old" 的问题(参考GitHub)。
随即发现这个原始的watchtower自己已经有2年没有更新了……但有人接过衣钵!那就是
于是只需要把之前的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

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