Watchtower 是一個用於自動更新 Docker 容器的工具。它可以監視 Docker Hub 或私有倉庫中的鏡像,併在發現新的鏡像版本時自動更新容器。 ...
https://www.cnblogs.com/yeungchie/
Watchtower 是一個用於自動更新 Docker 容器的工具。它可以監視 Docker Hub 或私有倉庫中的鏡像,併在發現新的鏡像版本時自動更新容器。
下載鏡像
docker pull containrrr/watchtower
啟動容器
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower
需要將本機的 /var/run/docker.sock 映射到容器內部。
指定需要監視的容器
預設情況下 Watchtower 會監視所有容器,現在我直線讓它幫我自動更新 jellyfin1 怎麼做?
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
jellyfin1
只需要跟上容器名就可以指定被監視的容器了。
指定更新頻率
Watchtower 預設情況下 24 小時會檢查一次鏡像更新。
官網說是 24 小時,ChatGPT 說是 5 分鐘,不管了 。。。
--interval
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--interval 5
每 5 秒檢查一次。
--schedule
使用 --schedule
可以指定一個 Cron 表達式,不過需要註意的是這裡用的是 6 fields 表達式,有別於傳統的 5 fields 表達式第一位用來指定秒單位。
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--schedule "0 0 10 * * 6"
每周六早上 10 點檢查一次。
上面的兩方式不能同時使用。
清理無用文件
容器在更新後會產生一些無用的版本,用下麵的方式即可清理。
docker volume prune
更多 Watchtower 相關資料可以查看 https://containrrr.github.io/watchtower.