From 7f2035b67905dac0d28e6c73caadf2a03d6baf50 Mon Sep 17 00:00:00 2001 From: Awin Huang Date: Mon, 22 Jan 2024 20:31:59 +0800 Subject: [PATCH] vault backup: 2024-01-22 20:31:59 --- 00. Inbox/樹莓派/Watchtower.md | 97 ++++++++++++++++++++++++++++++++++ 05. 資料收集/架站/Storj.md | 4 +- [storjlabs/watchtower.md | 0 3 files changed, 99 insertions(+), 2 deletions(-) create mode 100644 00. Inbox/樹莓派/Watchtower.md create mode 100644 [storjlabs/watchtower.md diff --git a/00. Inbox/樹莓派/Watchtower.md b/00. Inbox/樹莓派/Watchtower.md new file mode 100644 index 0000000..8a0a955 --- /dev/null +++ b/00. Inbox/樹莓派/Watchtower.md @@ -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) \ No newline at end of file diff --git a/05. 資料收集/架站/Storj.md b/05. 資料收集/架站/Storj.md index d7ada79..30fa33c 100644 --- a/05. 資料收集/架站/Storj.md +++ b/05. 資料收集/架站/Storj.md @@ -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 ```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 ``` -等 watchtower 跑起來之後,可以用 `sudo docker exec -it storagenode /app/dashboard.sh` 來即時觀察執行流量。 +等 [[Watchtower]] 跑起來之後,可以用 `sudo docker exec -it storagenode /app/dashboard.sh` 來即時觀察執行流量。 ## 手動 ```shell diff --git a/[storjlabs/watchtower.md b/[storjlabs/watchtower.md new file mode 100644 index 0000000..e69de29