NAS 的「Docker」怎麼用:Container Manager 與 Portainer 的差異

發表時間:2026 年 11 月 10 日 | 更新日期:2026 年 11 月 10 日 | 編輯:雅寶社區編輯團隊
NAS 的「Docker」怎麼用:Container Manager 與 Portainer 的差異 - 雅寶社區 · 頂客論壇

  • 映像檔(Image):可以想成「應用程式的安裝光碟」或「範本」。它是唯讀的,裡面包含程式本體與執行環境。例如 nginx:latest 就是一個映像檔。
  • 容器(Container):映像檔「執行起來」之後的狀態,就是容器。同一個映像檔可以同時跑出好幾個容器,彼此互不干擾。
  • 容器倉庫(Registry):存放映像檔的地方,最知名的是 Docker Hub,其他還有 GHCR(GitHub)、Quay、LinuxServer.io 等。
  • 資料卷(Volume)與掛載(Bind Mount):容器刪掉後資料也會跟著消失,所以要把重要資料「掛」到 NAS 的資料夾或 Docker 管理的 Volume 上,才能永久保存。
  • 連接埠(Port)對應:容器內的服務有它自己的 Port,要把它「對應」到 NAS 的 Port,你才能用瀏覽器連進去。例如把容器的 80 對應到 NAS 的 8080。
  • 網路(Network):多個容器之間要互相溝通(例如網站容器連資料庫容器),會透過 Docker 建立的虛擬網路來連接。
  • 2.2 NAS 環境與一般電腦的差異

    在桌機上玩 Docker,很多細節可以隨便;但在 NAS 上,有幾個地方必須特別注意:

  • CPU 架構:NAS 可能是 x86_64(Intel/AMD)或 ARM。下載映像檔時若抓到不支援的架構,容器會啟動失敗,錯誤訊息通常會提到 exec format error。
  • 儲存路徑:Synology 的共用資料夾實際路徑多半是 /volume1/docker 這種形式,設定掛載時要填對。
  • 權限(PUID/PGID):容器內的程式若要以特定使用者身分寫入檔案,需要對應 NAS 上的 UID/GID,否則會出現「沒有寫入權限」的問題。
  • 開機自動啟動:NAS 通常會重開機(更新、停電),容器的重啟策略一定要設定成 always 或 unless-stopped。
  • 資源有限:入門款 NAS 記憶體可能只有 2GB~4GB,跑太多容器或太肥的服務會讓整台機器卡頓,建議先從輕量服務開始。
  • 三、Container Manager:Synology 的原生 Docker 管理工具

    3.1 Container Manager 是什麼?怎麼安裝?

    Container Manager 是 Synology 在 DSM 7.2 之後推出的官方套件,用來取代舊版的「Docker」套件。它的定位很明確:讓 Synology 使用者可以在圖形介面中完成大部分 Docker 操作,不需要打開 SSH 打指令。

    安裝方式非常簡單:打開「套件中心」→ 搜尋「Container Manager」→ 安裝 → 開啟。安裝完成後,它會在 Docker 資料夾下建立工作目錄,並且在系統中啟用 Docker 服務。

    要注意的是,若你的 DSM 版本還在 7.1 或更早,套件名稱仍然是「Docker」,功能相對陽春,沒有「專案」與「Compose」整合。這也是不少人建議乾脆升級 DSM 或直接改用 Portainer 的原因之一。

    3.2 功能總覽:五個分頁搞定大小事

    Container Manager 的介面設計得相當直覺,主要分成幾個區塊:

  • 概覽(Overview):顯示目前容器數量、CPU/記憶體使用率、網路流量,讓你快速知道 NAS 現在忙不忙。
  • 容器(Container):列出所有容器,可以啟動、停止、重啟、查看日誌、進入終端機、修改設定。右側的「詳細資料」能看到環境變數、連接埠、掛載路徑等。
  • 映像(Image):管理已下載的映像檔,支援從 Docker Hub 搜尋與下載,也能匯入本機的 tar 檔。
  • 網路(Network):建立 bridge 網路,讓多個容器可以透過名稱互相連線。
  • 專案(Project):這是 Container Manager 最有價值的地方。你可以貼上 docker-compose.yml 內容,它會幫你建立一整組服務,之後也能透過「動作」重新部署。
  • 註冊表(Registry):搜尋並下載映像檔,也可以登入 Docker Hub 帳號以提高下載次數上限。
  • 3.3 Container Manager 的優點與限制

    優點方面,它與 DSM 深度整合,使用同一個帳號登入,不需要額外開帳號;介面有繁體中文,對台灣使用者友善;遇到問題時,官方文件與論壇討論都以它為主;此外,因為是官方套件,DSM 更新時相容性通常較有保障。

    限制方面,它有幾個讓進階使用者卻步的地方。第一,它只能管理「本機」這一台 NAS 的 Docker,如果你家裡有兩台 NAS,就得開兩個視窗切來切去。第二,容器設定的可調整項目沒有 Portainer 那麼細,例如某些網路模式、進階的資源限制、容器複製等功能較為缺乏。第三,沒有內建的「應用範本(App Templates)」,每次部署都要自己查映像名稱與參數。第四,日誌檢視與事件記錄相對簡單,排查問題時資訊量較少。

    四、Portainer:跨平台的通用 Docker 管理面板

    4.1 Portainer 是什麼?

    Portainer 是一套開源的 Docker 圖形化管理工具,本身也是用容器跑的。它的最大特色是跨平台、跨主機:不論你用的是 Synology、QNAP、Asustor、TrueNAS、Raspberry Pi 或雲端 VPS,只要有 Docker,就能裝 Portainer;而且一個 Portainer 介面可以同時管理多台 Docker 主機,這對有多台機器的人來說非常方便。

    Portainer 分為社群版(CE,免費)與商業版(BE,付費)。對一般家庭使用者來說,CE 版的功能已經非常足夠,本文章也以 CE 版為主。

    4.2 在 NAS 上安裝 Portainer

    安裝 Portainer 最常見的方式是用一行指令,或者用 Compose 部署。若你不想開 SSH,也可以直接在 Container Manager 的「專案」裡貼上 Compose 內容來安裝,這一點後面會示範。

    傳統的 docker run 指令如下(請在 SSH 中執行,或透過 Container Manager 的終端機):

    docker run -d \

    p 9000:9000 \

    name portainer \

    restart=always \

    v /var/run/docker.sock:/var/run/docker.sock \

    v portainer_data:/data \

    portainer/portainer-ce:latest

    這段指令做了幾件事:把 Portainer 的 9000 埠對應出來、設定開機自動重啟、把 Docker 的「控制插座」/var/run/docker.sock 掛進容器(這是 Portainer 能操作 Docker 的關鍵)、並把 Portainer 自己的設定資料存在名為 portainer_data 的 Volume 中。

    啟動後,用瀏覽器打開 http://你的NAS IP:9000,第一次進入要設定管理員帳號(密碼至少 12 碼),設定完成就能開始使用。

    資安提醒:把 docker.sock 掛進容器,等於把 Docker 的完整控制權交給該容器。請務必設定高強度密碼、不要把 9000 埠直接暴露到公網,最好只在家中內網使用,或透過 VPN 連線。

    4.3 Portainer 的核心功能

    Portainer 的功能相當完整,以下列出最常用的幾個:

  • Environments(環境):可以新增多個 Docker 端點,例如家里的兩台 NAS、一台樹莓派,全部在同一個介面切換管理。
  • Stacks(堆疊):本質就是 Docker Compose。你可以貼上 YAML 內容部署多容器應用,也能直接在網頁上編輯、重新部署、查看變更。
  • App Templates(應用範本):內建數十個常見服務的一鍵部署範本,填空就能裝好,對新手非常省事。
  • Containers(容器):除了基本的啟停,還能複製容器、修改環境變數、即時查看日誌、進入 Console、檢視統計圖表。
  • Images/Volumes/Networks:完整管理映像、資料卷與網路,包含清理未使用的資源。
  • Events(事件):記錄 Docker 主機上發生的所有動作,排查問題時很好用。
  • Users 與 RBAC:可建立多個使用者並指派不同權限,適合家庭成員共用或小型團隊。
  • 五、Container Manager 與 Portainer 差異全面比較

    5.1 功能比較表

    比較項目

    Container Manager

    Portainer(CE)

    來源與性質

    Synology 官方套件

    第三方開源容器

    支援機種

    僅 Synology DSM 7.2 以上

    任何支援 Docker 的平台

    安裝方式

    套件中心一鍵安裝

    需手動以容器方式部署

    介面語言

    繁體中文(跟隨 DSM)

    以英文為主,部分版本可切換語言

    多主機管理

    不支援,僅本機

    支援,可新增多個環境

    Compose 支援

    支援(稱為「專案」)

    支援(稱為「Stacks」)

    應用範本

    有,內建多種一鍵部署範本

    容器操作細節

    基本齊全

    更細緻,可複製、即時統計、Console

    事件與日誌

    基本日誌

    完整事件記錄與日誌檢視

    帳號與權限

    與 DSM 帳號整合

    自有帳號系統,支援 RBAC

    更新方式

    跟隨 DSM 套件更新

    需自行更新容器映像

    適合對象

    新手、輕度使用者、單機環境

    進階使用者、多機環境、需要精細控制者

    5.2 使用情境:你該選哪一套?

    如果你的情況符合以下描述,Container Manager 就很夠用:只有一台 Synology NAS、想跑三五個服務、不熟悉 YAML 語法、希望介面有中文、偏好「官方支援」帶來的安心感。對這樣的使用者來說,額外裝 Portainer 反而多一層學習成本。

    但如果你的情況是:建議直接使用 Portainer。例如你有多台 NAS 或一台 NAS 加一台樹莓派;你經常需要部署多容器組合(網站+資料庫+反向代理);你喜歡用 Compose 檔案管理設定並版控;你需要查看詳細事件記錄來除錯;你想要應用範本快速試用新服務。這些都是 Portainer 明顯勝出的地方。

    實務上,很多進階玩家會兩套並存:用 Container Manager 負責日常監看與快速重啟,用 Portainer 負責部署與管理複雜的 Stack。這樣做完全沒有衝突,因為兩者操作的是同一個 Docker 引擎,你在其中一邊建立的容器,另一邊也看得到。唯一要注意的是「不要同時在兩邊修改同一個容器」,以免設定互相覆蓋。

    5.3 其他 NAS 品牌怎麼選?

    順帶一提,如果你不是用 Synology:QNAP 的對應工具是「Container Station」,功能類似 Container Manager,也支援 Docker Compose;Asustor 則在 App Central 提供 Portainer,等於直接內建;TrueNAS SCALE 使用「Apps」搭配 Kubernetes,邏輯稍有不同。但不論哪一台,只要你願意,都可以自行安裝 Portainer 來統一管理。

    六、實戰演練:部署你的第一個容器

    觀念講完,接下來實際動手。我們用同一個服務「IT-Tools」來示範,分別用 Container Manager 與 Portainer 各部署一次,讓你直接感受兩者的操作差異。IT-Tools 是一個集合多種開發者工具的網頁,映像小、啟動快、不需要資料庫,很適合當第一個練習。

    6.1 事前準備

  • 在 NAS 上建立一個資料夾,例如 /volume1/docker/it-tools,用來存放設定(這個服務其實不需要,但養成習慣)。
  • 確認要使用的連接埠沒被占用,這裡假設用 8080。可到 DSM 的「控制台 → 資訊中心 → 服務」或直接用瀏覽器測試。
  • 確認 NAS 的 CPU 架構,IT-Tools 同時提供 amd64 與 arm64 映像,一般不會有問題。
  • 確認 NAS 有網路可以連到 Docker Hub。

    6.2 用 Container Manager 部署 IT-Tools

    步驟一:下載映像

    打開 Container Manager → 左側「註冊表」→ 搜尋 it-tools → 找到 corentinth/it-tools → 點「下載」→ 選擇 latest 標籤。

    步驟二:建立容器

    切到「映像」分頁 → 選取剛剛下載的映像 → 點「執行」→ 進入設定精靈。

    容器名稱:it-tools

    勾選「啟用自動重新啟動」

  • 「連接埠設定」:本機埠填 8080,容器埠填 80(TCP)
  • 「儲存空間設定」:此服務不需要,可略過

    「環境」:不需要

    其餘保持預設,按「完成」

    步驟三:驗證

    在瀏覽器輸入 http://你的NAS IP:8080,看到 IT-Tools 的首頁就成功了。回到 Container Manager 的「容器」分頁,你會看到 it-tools 正在執行,點進去看「詳細資料」可以看到它的連接埠與日誌。

    步驟四:用「專案」部署(Compose 版)

    如果你想體驗 Container Manager 的 Compose 功能,可以刪掉剛剛的容器,改用「專案」→「新增」→ 貼上以下內容:

    services:

    it-tools:

    image: corentinth/it-tools:latest

    container_name: it-tools

    ports:

    • "8080:80"

    restart: unless-stopped

    按下「下一步」→「完成」,Container Manager 會自動下載映像並啟動。之後要更新,只要在專案页面按「動作 → 重建」即可。這也是 Container Manager 相對於舊版 Docker 套件最大的进步。

    6.3 用 Portainer 的 Stack 部署同一個服務

    假設你已經安裝好 Portainer 並完成管理員帳號設定,流程如下:

    步驟一:登入

    打開 http://你的NAS IP:9000,使用剛才設定的帳密登入,選擇「local」環境。

    步驟二:建立 Stack

    左側選「Stacks」→「Add stack」→ 名稱填 it-tools → 在 Web editor 貼上:

    services:

    it-tools:

    image: corentinth/it-tools:latest

    container_name: it-tools

    ports:

    • "8080:80"

    restart: unless-stopped

    按「Deploy the stack」。Portainer 會自動拉取映像並啟動容器,完成後在容器列表就能看到它。

    步驟三:觀察差異

    在 Portainer 裡,你可以點進容器看「Logs」、「Stats」、「Inspect」,甚至直接在 Console 裡執行指令。也能在「Events」分頁看到剛才部署時發生的所有事件。這些細節是 Container Manager 比較缺乏的部分。

    步驟四:更新服務

    要更新映像時,Portainer 的做法是:Stacks → 選取 it-tools → 按「Editor」→ 修改或保留內容 → 勾選「Re-pull image and redeploy」→ 按 Update。這樣就會重新拉取最新映像並重建容器,資料不會遺失(前提是有正確掛載資料卷)。

    6.4 進階:加上反向代理與 HTTPS

    當你部署的服務越來越多,用「IP+Port」記住每個服務會變得很痛苦。這時可以再部署一個 Nginx Proxy Manager(簡稱 NPM),把 tools.yourdomain.com 指向 NAS 的 8080,並自動申請 Let's Encrypt 憑證。這樣每個服務都有好記的網域與 HTTPS,使用體驗會提升一個檔次。

    NPM 本身也是用 Docker 部署,而且很適合當作 Portainer 的第一個「正式專案」。它的 Compose 大致如下(記得把連接埠與資料夾改成你自己的):

    services:

    npm:

    image: jc21/nginx-proxy-manager:latest

    container_name: npm

    ports:

    • "80:80"
    • "443:443"
    • "8181:81"

    volumes:

    • /volume1/docker/npm/data:/data
    • /volume1/docker/npm/letsencrypt:/etc/letsencrypt

    restart: unless-stopped

    部署完成後,用 http://NAS IP:8181 進入管理介面(預設帳號 [email protected]、密碼 changeme,登入後務必立刻修改),就可以開始設定 Proxy Host。這部分內容較多,之後有機會再單獨寫一篇完整教學。

    七、常見問題與資安注意事項

    7.1 新手最常踩的十個雷

  • 映像架構不符:容器一啟動就結束,日誌顯示 exec format error,通常是抓到 ARM 映像但機器是 x86,或反過來。解法是到映像頁面確認支援的架構,或改用多架構映像。
  • 連接埠衝突:兩個容器都想用 8080,第二個會啟動失敗。解法是換一個 Port,或先停掉佔用的服務。
  • 忘記掛載資料卷:容器重啟後設定全部消失。部署前務必確認 /config、/data 這類路徑有對應到 NAS 資料夾。
  • 權限不足:容器寫不進資料夾。解法是設定 PUID/PGID 環境變數,或調整資料夾權限。
  • 沒有設定自動重啟:NAS 重開機後服務就掛了。請一律加上 restart: unless-stopped。
  • 把管理介面暴露到公網:Portainer、NPM、資料庫這類管理介面絕對不要直接開 Port 讓外網連。要用請透過 VPN 或加上驗證。
  • 使用來源不明的映像:Docker Hub 上任何人都能上傳映像,盡量選擇官方(Official)或有星星數、有原始碼連結的專案。
  • 記憶體不足:NAS 記憶體小,又同時跑多個容器,導致系統卡頓。可用 Portainer 的 Stats 觀察,必要時加裝記憶體。
  • 沒有備份設定:Docker 資料夾(/volume1/docker)要納入備份計畫,尤其是資料庫類服務。
  • 版本更新太衝:latest 標籤雖然方便,但有時更新會帶來 breaking change。重要服務建議固定版本號,例如 :1.2.3。
  • 7.2 安全性補充

    Docker 容器本身不是沙盒,尤其是掛載了 docker.sock 的 Portainer,等同於擁有 NAS 的最高權限。因此請務必做到以下幾點:Portainer 密碼使用密碼管理器產生高強度密碼;只在家中內網或 VPN 環境使用;定期更新 Portainer 映像;不要在容器內執行來路不明的映像;若 NAS 有對外開放,務必設定防火牆規則,僅允許必要 Port。

    另外,Synology 的 Container Manager 因為與 DSM 帳號整合,安全性取決於你的 DSM 帳號強度,建議開啟兩步驟驗證,並避免使用預設的 admin 帳號名稱。

    八、結語:先求有,再求好

    回到最初的問題:NAS 的 Docker 該用 Container Manager 還是 Portainer?答案其實不是二選一,而是「依階段選擇」。剛開始接觸 Docker 時,Container Manager 的中文介面與官方整合可以讓你快速上手,先把「下載映像、建立容器、設定連接埠與掛載」這幾個基本動作練熟。等你開始覺得「怎麼這個功能沒有」、「怎麼不能管理另一台機器」時,就是安裝 Portainer 的時機了。

    兩者操作的是同一個 Docker 引擎,資料是共通的,所以你隨時可以切換,不必擔心「裝了 A 就不能用 B」。真正重要的是觀念:映像與容器的差別、資料卷的重要性、連接埠與網路的概念、以及資安的基本意識。把這些搞清楚,工具只是輔助,換成哪一套你都能順利上手。

    最後給初學者一個建議:不要一次就想把所有服務搬到 NAS 上。先從一個最簡單、最不重要的服務開始(例如 IT-Tools 或 Uptime Kuma),成功跑起來、玩壞了再重來,累積幾次經驗之後,你自然就會知道自己的 NAS 適合什麼樣的玩法。Docker 的世界很大,慢慢探索就好。

    🏠 返回首頁