前言
雖然之前有講過可以用Nginx Proxy Manager來進行內外網路的轉址不過那些還要真的Mapping出來才能用,使用Traefik的話就不需要這麼麻煩了
基本概念
其實就是一堆virtual host只是它不用去寫一堆設定檔,可以在docker-compose.yml內用label定義後直接就可以用了
Traek本體
1 | # Docker-compose.yml |
其實是可以把command裡的指令改用traefik.toml載入也可以,簡單說明如下(雖然裡面的說明很多了)
- Docker Network 這個其實沒差,只是一般來說有多到需要Traefik的Server一般來說還是會整理一下Docker Network才不會那麼亂
- Command 這個指令其實是讓docker container啟動後自動執行的指令裡可以從上面看得出來幾乎都是定義環境的
- Volumes 這裡特別說明一下為什麼SSL要另外找地方放,因為Traefik是用ACME.Json的形式來存所有的SSL Key,另外一個要對應docker.sock很常見就是要知道你哪些container在跑
- labels 這個就是traefik的精華部份了,traefik就是利用labels定義讓他自動產生virtual host這樣container一打開就會自動弄好非常方便連NPM的操作都免了
對應App的設定方式
docker-compose.yml相關設定
1 | # 不需要定義Port Mapping |
Labels範例
1 | # V2ray traefik labels |
可以看得出來基本的邏輯是
1 | traefik.<主要服務,http/tcp/udp>.<子項,routers/services/middlewares>.<App Name>.<label item>: <define> |
注意事項
在Traefik後的服務請不要跑SSL,把前端的部份都交給Traefik就好了