找回密碼
 立即註冊
惟家LINE群QRCODE
    查看: 1|回覆: 0

    服務一多就亂:用 Docker Compose 管理智能家居容器

    [複製鏈接]

    !lvup!   100%

    363

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22005752
    發表於 3 天前 | 顯示全部樓層 |閱讀模式
    NAS 上開了 MQTT、InfluxDB、Grafana、Frigate⋯⋯
    一個一個用介面開,改設定要翻好幾層,換機器要重來一次。

    用 Docker Compose 會好非常多。



    ■ 它解決什麼問題

    所有服務的設定寫在同一個文字檔裡
    連接埠、環境變數、資料掛載、重啟策略,全部一目了然。

    好處:

    • 這個檔案可以進版控(Git),改壞了可以回溯
    • 換機器的時候,複製檔案就能重建整套環境
    • 一行指令更新全部服務


    ■ 基本長相
    1. services:
    2.   mosquitto:
    3.     image: eclipse-mosquitto:2
    4.     container_name: mosquitto
    5.     restart: unless-stopped
    6.     ports:
    7.       - "1883:1883"
    8.     volumes:
    9.       - ./mosquitto/config:/mosquitto/config
    10.       - ./mosquitto/data:/mosquitto/data
    11.   influxdb:
    12.     image: influxdb:2
    13.     container_name: influxdb
    14.     restart: unless-stopped
    15.     ports:
    16.       - "8086:8086"
    17.     volumes:
    18.       - ./influxdb:/var/lib/influxdb2
    複製代碼

    ■ 常用指令
    1. docker compose up -d          # 全部開起來
    2. docker compose down            # 全部停掉
    3. docker compose pull && docker compose up -d   # 更新全部
    4. docker compose logs -f mosquitto              # 看某個服務的日誌
    5. docker compose restart frigate                # 重啟單一服務
    複製代碼

    ■ 最重要的一件事:資料要掛出來

    一定要用 volumes 把資料掛到容器外面。
    1. volumes:
    2.   - ./mosquitto/data:/mosquitto/data
    複製代碼

    沒有掛出來的話,容器一刪除或更新,資料就全部消失
    這是最常見、也最痛的錯誤。

    ■ restart 策略要設
    1. restart: unless-stopped
    複製代碼

    這樣 NAS 重開機後容器會自動起來,不用手動開。

    ■ 小提醒

    Synology 和 QNAP 的圖形介面也能開容器,
    它們產生的設定不容易匯出

    如果你打算長期玩,建議一開始就用 Compose 檔,
    之後換機器、升級、除錯都會輕鬆很多。
    您需要登入後纔可以回帖 登入 | 立即註冊

    本版積分規則

    Archiver|手機版|惟家的智能論壇

    GMT+8, 2026-9-24 11:31 , Processed in 0.083911 second(s), 24 queries .

    快速回覆 返回頂部 返回列表