事情起因

  一直不知道已经部署完正在运行的Docker怎么更新,所以就搜索了下如何自动更新Dorker。果然有大神写了。
  于是就尝试如下。教程地址:https://p3terx.com/archives/docker-watchtower.html

一、通过SSH进入群晖,运行以下代码

  TZ是设置时区。interval是设置检查时间间隔。意思就是60s后开始检查。然后查看日志,如果有运行,就把interval改成86400,一天。

1
2
3
4
5
6
7
docker run -d \
--name watchtower \
--restart unless-stopped \
-e TZ="Asia/Shanghai" \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower -c \
--interval 60

日志如下:

1
2
3
4
5
6
time="2022-07-24T09:08:22+08:00" level=info msg="Watchtower 1.4.0"
time="2022-07-24T09:08:22+08:00" level=info msg="Checking all containers (except explicitly disabled with label)"
time="2022-07-24T09:08:22+08:00" level=info msg="Using no notifications"
time="2022-07-24T09:08:22+08:00" level=info msg="Scheduling first run: 2022-07-24 10:08:22 +0800 CST"
time="2022-07-24T09:08:22+08:00" level=info msg="Note that the first check will be performed in 59 minutes, 59 seconds"
time="2022-07-24T10:08:30+08:00" level=info msg="Session done" Failed=0 Scanned=3 Updated=0 notify=no

二、改为1天检查一次。

  把interval数值改为86400。

1
2
3
4
5
6
7
docker run -d \
--name watchtower \
--restart unless-stopped \
-e TZ="Asia/Shanghai" \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower -c \
--interval 86400

三、使用compose文件设定更新

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
version: "3"
services:
watchtower:
container_name: watchtower
environment:
- TZ=Asia/Shanghai
- WATCHTOWER_NOTIFICATIONS=email
- WATCHTOWER_NOTIFICATION_EMAIL_FROM=邮箱
- WATCHTOWER_NOTIFICATION_EMAIL_TO=目的地邮箱
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.163.com
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=465
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=邮箱
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=邮箱密码
- WATCHTOWER_NOTIFICATION_EMAIL_DELAY=2
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
image: containrrr/watchtower:latest
command: -ce --schedule "0 0,30,40 7,9,11,12,16,21,22 * * ? "
labels:
- "com.centurylinklabs.watchtower.enable=true"