vault backup: 2024-01-22 20:31:59
This commit is contained in:
97
00. Inbox/樹莓派/Watchtower.md
Normal file
97
00. Inbox/樹莓派/Watchtower.md
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
## 安裝 Watchtower
|
||||||
|
```shell
|
||||||
|
docker pull Watchtower
|
||||||
|
```
|
||||||
|
|
||||||
|
## 使用方法
|
||||||
|
```shell
|
||||||
|
docker run --detach \
|
||||||
|
--name watchtower \
|
||||||
|
--volume /var/run/docker.sock:/var/run/docker.sock \
|
||||||
|
containrrr/watchtower
|
||||||
|
```
|
||||||
|
|
||||||
|
使用剛剛的方法會拉取最新鏡像,但並不會自動刪除舊有鏡像,時間一長就會佔用很大空間,這裡可以使用 `--cleanup` 選項,在更新完舊容器之後自動刪除舊鏡像
|
||||||
|
|
||||||
|
```shell
|
||||||
|
docker run -d \
|
||||||
|
--name watchtower \
|
||||||
|
--restart always \
|
||||||
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||||
|
containrrr/watchtower \
|
||||||
|
--cleanup
|
||||||
|
```
|
||||||
|
|
||||||
|
### 設置自動更新檢測頻率
|
||||||
|
Watchtower 默認是每 5min 檢測一次,如果需要更改週期,可以使用 `--interval`、`-i` 選項
|
||||||
|
如設定每小時檢測一次:
|
||||||
|
```shell
|
||||||
|
docker run -d \
|
||||||
|
--name watchtower \
|
||||||
|
--restart always \
|
||||||
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||||
|
containrrr/watchtower \
|
||||||
|
--cleanup \
|
||||||
|
-i 3600
|
||||||
|
```
|
||||||
|
|
||||||
|
`-i 3600`:這裡的 `3600` 是設置的時間週期,單位是**秒** , `3600` 即 1 小時
|
||||||
|
|
||||||
|
### 指定更新檢測時間
|
||||||
|
除了設置頻率,還可以使用 `--schedule`、`-s` 選項指定時間 如指定每天 UTC+8 時間凌晨 3 點更新。
|
||||||
|
```shell
|
||||||
|
docker run -d \
|
||||||
|
--name watchtower \
|
||||||
|
--restart always \
|
||||||
|
-e TZ=Asia/Taipei \
|
||||||
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||||
|
containrrr/watchtower \
|
||||||
|
--cleanup \
|
||||||
|
-s "0 0 3 * * *"
|
||||||
|
```
|
||||||
|
|
||||||
|
這裡的執行時間為 UTC 時間,如果不指定時區,會比台北的 UTC+8:00 時間晚 8 小時
|
||||||
|
|
||||||
|
### 制定需要更新的容器
|
||||||
|
如果不想更新所有容器,可以設置指定的容器進行更新
|
||||||
|
以 `nginx` 和 `netdata` 這兩個容器舉例:
|
||||||
|
```shell
|
||||||
|
docker run -d \
|
||||||
|
--name watchtower \
|
||||||
|
--restart always \
|
||||||
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||||
|
containrrr/watchtower \
|
||||||
|
--cleanup \
|
||||||
|
nginx netdata
|
||||||
|
```
|
||||||
|
|
||||||
|
這裡指定的容器只需要填寫**容器名**,而不是填寫該容器的**鏡像名**
|
||||||
|
|
||||||
|
## 手動更新
|
||||||
|
如果不想在使用容器時被自動更新打斷,可以使用 Watchtower 進行手動更新
|
||||||
|
由於是手動更新,Watchtower 只需要用到一次,可以添加 `--rm` 和 `--run-once` 參數,在更新完之後過河拆橋
|
||||||
|
|
||||||
|
### 手動更新所有容器
|
||||||
|
```shell
|
||||||
|
docker run --rm \
|
||||||
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||||
|
containrrr/watchtower \
|
||||||
|
--cleanup \
|
||||||
|
--run-once
|
||||||
|
```
|
||||||
|
|
||||||
|
## 手動更新指定容器
|
||||||
|
繼續以 `nginx` 和 `netdata` 這兩個容器舉例
|
||||||
|
|
||||||
|
```shell
|
||||||
|
docker run --rm \
|
||||||
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||||
|
containrrr/watchtower \
|
||||||
|
--cleanup \
|
||||||
|
--run-once \
|
||||||
|
nginx netdata
|
||||||
|
```
|
||||||
|
|
||||||
|
## 參考
|
||||||
|
- [使用Watchtower自動更新Docker鏡像和容器 - Docker容器 - 計算機 | 🧂 = 鹽🧂的記事本 = ( ´∀`)ヵヵヵ](https://www.sio.moe/2021/12/18/computer/Docker-Container/Use-Watchtower-to-automatically-update-Docker-images-and-containers/)
|
||||||
|
- [storjlabs/watchtower Tags | Docker Hub](https://hub.docker.com/r/storjlabs/watchtower/tags)
|
||||||
@@ -96,7 +96,7 @@ sudo docker run -d --restart always --stop-timeout 300 \
|
|||||||
```
|
```
|
||||||
|
|
||||||
# 更新
|
# 更新
|
||||||
更新 node 可以選擇用 docker 裝 [watchtower]([storjlabs/watchtower Tags | Docker Hub](https://hub.docker.com/r/storjlabs/watchtower/tags)) ,或是手動更新
|
更新 node 可以選擇用 docker 裝[[Watchtower]] ,或是手動更新
|
||||||
|
|
||||||
## watchtower
|
## watchtower
|
||||||
```shell
|
```shell
|
||||||
@@ -104,7 +104,7 @@ sudo docker pull storjlabs/watchtower
|
|||||||
sudo docker run -d --restart=always --name watchtower -v /var/run/docker.sock:/var/run/docker.sock storjlabs/watchtower storagenode watchtower --stop-timeout 300s
|
sudo docker run -d --restart=always --name watchtower -v /var/run/docker.sock:/var/run/docker.sock storjlabs/watchtower storagenode watchtower --stop-timeout 300s
|
||||||
```
|
```
|
||||||
|
|
||||||
等 watchtower 跑起來之後,可以用 `sudo docker exec -it storagenode /app/dashboard.sh` 來即時觀察執行流量。
|
等 [[Watchtower]] 跑起來之後,可以用 `sudo docker exec -it storagenode /app/dashboard.sh` 來即時觀察執行流量。
|
||||||
|
|
||||||
## 手動
|
## 手動
|
||||||
```shell
|
```shell
|
||||||
|
|||||||
0
[storjlabs/watchtower.md
Normal file
0
[storjlabs/watchtower.md
Normal file
Reference in New Issue
Block a user