不用打指令,也能在 NAS 上跑 Docker 容器。

Container Manager 是 Synology 的 Docker 圖形化管理介面,不用記指令也能跑容器。這篇從安裝到部署說清楚映像、容器、網路、Volume 的概念,並示範用 Compose 一鍵啟動服務。

Synology Container Manager 完整教學:用 GUI 管理 Docker 不需要記指令

很多人聽說 NAS 可以跑 Docker,然後第一個反應是:「Docker 不是要記一堆指令嗎?」

這個印象在 Synology 上並不完全準確。從 DSM 7.2 開始,Synology 把原本的 Docker 套件升級成 Container Manager,提供完整的圖形化介面,你可以在 DSM 網頁上直接管理映像、建立容器、設定 Volume 和網路,甚至貼上 docker-compose.yaml 就能一鍵啟動服務。

這篇從概念到操作,帶你完整走過整個流程。

Container Manager 工作流程


這篇適合誰

你的情況 建議先看哪段
完全不知道 Docker 是什麼 先看「核心概念快速理解」
知道 Docker,但沒在 NAS 上用過 從「安裝 Container Manager」開始
裝好了,想知道怎麼建容器 跳到「拉取映像檔」
想直接用 Compose 部署 跳到「使用 Compose 部署」
容器出問題了 直接看「常見問題」

Container Manager vs 舊版 Docker

DSM 7.2 是一個分水嶺。Synology 在這版把「Docker」套件正式改名為 Container Manager,同時帶來幾個實質升級:

項目 舊版 Docker 套件 Container Manager (DSM 7.2+)
套件名稱 Docker Container Manager
Compose 支援 無(需 SSH 手動執行) 內建 Compose 專案管理
容器管理介面 基本 改版,資訊更完整
映像搜尋 有,介面更新
記憶體 / CPU 監控 簡單 每容器即時圖表
多容器專案管理 支援 Compose 專案群組

最重要的差異是 Compose 支援。以前你要在 SSH 裡用 docker-compose up -d 才能啟動多容器服務,現在直接在網頁介面貼上 yaml 就能完成,大幅降低門檻。


核心概念快速理解

在開始操作之前,先把幾個關鍵詞搞清楚,之後看介面會順很多。

術語 白話解釋 類比
映像 (Image) 一個應用程式的「安裝包」,唯讀 軟體的光碟片
容器 (Container) 從映像啟動的「執行中實體」,可讀寫 把光碟裝進去跑起來的程式
Volume(磁碟區) 掛載到容器裡的持久化儲存空間 給程式的專用資料夾
網路 (Network) 容器之間如何互相溝通的方式 容器的內部區域網路
Port 映射 把 NAS 的某個埠轉進容器內的埠 把一樓大廳的電話轉到三樓辦公室

一個重要觀念:容器本身是暫時的。你刪掉容器,裡面的資料也會消失。所以任何要保留的資料(設定、資料庫、上傳檔案)都必須透過 Volume 掛載到 NAS 的實體路徑上。


安裝 Container Manager

硬體需求

Container Manager 需要 DSM 7.2 或更新版本,而且只有搭載 x86_64 或 ARMv8 處理器的機型才支援。

支援的主要系列包括: - Plus 系列:DS923+、DS723+、DS1522+ 等 - XS/XS+ 系列:DS1823xs+ 等企業機型 - DVA 系列:DVA1622、DVA3221 等(含 AI 功能)

不支援的機型:使用 Realtek RTD1619B 等 ARMv7 處理器的入門機種(如舊款 DS220j)無法安裝 Container Manager。購買前請先到 Synology 官網的套件相容性頁面確認。

安裝步驟

  1. 登入 DSM,開啟套件中心
  2. 在搜尋欄輸入「Container Manager」
  3. 點擊安裝,確認授權條款
  4. 安裝完成後,在應用程式選單找到 Container Manager 圖示並開啟
  5. 首次開啟時,系統會引導你選擇 Docker 資料存放位置,建議選擇 SSD 快取或 NVMe 磁碟區以獲得最佳效能

安裝完成後,建議在 DSM 控制台 → 安全性 → 防火牆 確認你稍後會用到的 Port 是否需要開放規則。


拉取映像檔

映像是一切的起點。Container Manager 提供 Registry 搜尋介面,讓你不用記 docker pull 指令。

操作步驟

  1. 開啟 Container Manager,點擊左側選單的映像
  2. 點擊右上角新增 → 從 Docker Hub 新增
  3. 在搜尋欄輸入你要的映像名稱(例如 uptime-kuma
  4. 從結果列表選擇映像: - 官方映像:有「Docker Official Image」標章,由官方維護,安全性較高 - 社群映像:例如 linuxserver/ 開頭的映像,通常有良好維護紀錄和詳細文件
  5. 選擇 Tag(版本標籤): - latest:最新穩定版,方便但有時不穩定 - 指定版本號(例如 1.23.4):適合生產環境,升級時有明確控制
  6. 點擊套用,Container Manager 會開始下載映像

下載完成後,映像會出現在映像清單,顯示大小和建立時間。

建議:用 linuxserver.io 的映像時,可以到他們的 文件網站 查看該映像支援的環境變數和 Volume 路徑,非常詳細。


建立容器

映像下載完成後,就可以從它建立容器。這個步驟是設定最多的地方,仔細看。

在映像清單選擇你的映像,點擊執行,進入容器建立精靈。

Port 映射

Port 映射的邏輯是:主機(NAS)Port : 容器內部 Port

設定欄位 說明 範例
本機連接埠 NAS 上你想開放的 Port 8080
容器連接埠 映像文件裡指定的服務 Port 80

設定後,你就能用 http://NAS-IP:8080 連到容器裡的 Port 80 服務。

注意事項: - NAS 本身的某些 Port 已被佔用(例如 50005001 是 DSM),避免衝突 - 如果你要對外開放,也要確認路由器有做 Port Forwarding - 一個 NAS Port 只能給一個容器使用

Volume 掛載

這是最重要的步驟,很多人忘記設定 Volume,容器刪掉或更新後資料就消失了。

推薦的路徑命名慣例

/volume1/docker/[應用名稱]/
  ├── config/      ← 設定檔
  ├── data/        ← 資料庫或資料
  └── logs/        ← 記錄(可選)

在 Container Manager 的 Volume 設定:

設定欄位 填寫內容 說明
主機資料夾 /volume1/docker/uptime-kuma/data NAS 上的實體路徑
掛載路徑 /app/data 容器內的路徑(看映像文件)
類型 讀/寫 通常選讀/寫

在設定 Volume 前,先用 File Station 把資料夾建好,確保路徑存在。

環境變數

很多映像透過環境變數控制行為,例如設定語言、時區、管理員密碼等。

常見的通用環境變數:

變數名稱 用途
TZ Asia/Taipei 設定容器時區
PUID 1026(你的 DSM 使用者 UID) 指定檔案擁有者
PGID 100(users 群組) 指定群組

取得你的 PUID/PGID:在 DSM 的 SSH 或終端機裡執行 id [你的使用者名稱],會顯示對應數字。

重新啟動原則

選項 行為 適合情境
不自動重新啟動 停止後不重啟 測試用容器
發生錯誤時重新啟動 崩潰才重啟 一般服務
永遠重新啟動 任何停止都重啟 需要高可用的服務
除非手動停止 類似永遠,但你主動停止不重啟 建議選這個

建議長期運行的服務選「除非手動停止」(unless-stopped),這樣 NAS 重開機後容器也會自動恢復。


使用 Compose 部署

如果你要部署多個容器、或者映像文件直接提供了 docker-compose.yaml,用 Compose 是最省事的方式。

操作步驟

  1. 在 Container Manager 左側選單點擊專案
  2. 點擊新增,輸入專案名稱(例如 uptime-kuma
  3. 選擇專案路徑(建議對應 /volume1/docker/uptime-kuma
  4. 在「建立 docker-compose.yml」區域,貼上你的 yaml 內容(貼上前可用 Docker Compose 產生器 / 檢查器 確認語法正確)
  5. 點擊下一步預覽設定,確認後點擊完成
  6. Container Manager 會自動執行 docker compose up -d 並顯示啟動記錄

範例:部署 Uptime Kuma

Uptime Kuma 是一個自架的服務監控工具,可以監測網站、API、Port 是否正常。

version: "3.8"

services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    container_name: uptime-kuma
    restart: unless-stopped
    ports:
      - "3001:3001"
    volumes:
      - /volume1/docker/uptime-kuma/data:/app/data
    environment:
      - TZ=Asia/Taipei

貼上後點完成,等待映像下載完成,接著用 http://NAS-IP:3001 就能開啟設定畫面。

範例:部署 Portainer(容器管理 UI)

version: "3.8"

services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: unless-stopped
    ports:
      - "9000:9000"
      - "9443:9443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /volume1/docker/portainer/data:/data
    environment:
      - TZ=Asia/Taipei

注意:掛載 /var/run/docker.sock 讓 Portainer 可以管理本機 Docker,這個路徑不需要你在 NAS 上建立,它是 Docker daemon 的 socket 檔案。

Compose 專案的日常管理

在 Container Manager 的「專案」頁面,你可以: - 停止 / 啟動整個 Compose 專案(一次控制所有容器) - 查看即時記錄 - 點擊編輯修改 yaml,存檔後點重新部署即可套用更改


常見問題

Q1:容器一直重新啟動,怎麼查原因?

在 Container Manager 的容器清單找到那個容器,點進去看記錄分頁。通常在最後幾行的錯誤訊息就能找到原因,常見是:路徑不存在、環境變數設錯、Port 被佔用,或映像版本不相容。


Q2:我在 DSM 防火牆開了 Port,但從外網還是連不到容器?

問題通常出在三個地方,依序確認:

  1. 容器本身的 Port 映射有沒有設正確
  2. DSM 防火牆有沒有允許那個 Port 的 TCP 連線
  3. 路由器的 Port Forwarding 有沒有把外部 Port 轉到 NAS 的 IP

如果三個都正常但還是連不到,確認你的 ISP 沒有封鎖該 Port(部分業者會封鎖 80、443 以外的 Port)。


Q3:更新容器後,資料不見了?

這是最常見的誤操作。如果你沒有設定 Volume,容器的資料只存在容器層,刪除容器就消失了。

往後的作法: - 更新容器前,先確認所有重要路徑都有掛載對應的 NAS Volume - 更新流程:停止容器 → 拉取新映像 → 刪除舊容器 → 用相同設定(Volume 不變)重新建立 - 有重要資料的服務,建議定期備份 /volume1/docker/ 整個目錄到 Hyper Backup


Q4:怎麼更新已在跑的容器到最新版本?

Container Manager 本身沒有一鍵更新按鈕,標準流程如下:

  1. 映像頁面,找到該映像,點更新(或重新從 Registry 拉取)
  2. 等待新映像下載完成
  3. 停止並刪除舊容器
  4. 用同樣的設定(Volume、Port、環境變數都不變)重新建立容器

如果你用 Compose 部署,更新更簡單:在專案頁面點編輯,把映像 tag 改成新版本,存檔後點重新部署即可。


小結

Container Manager 把大部分的 Docker 操作都搬進了圖形介面,對不習慣指令列的人來說,這個門檻降低了很多。

幾個關鍵原則,記住就能少踩坑:

  • Volume 一定要設,不然資料在容器刪除或更新後會消失
  • 時區記得設定TZ=Asia/Taipei),不然記錄的時間戳會對不上
  • 重啟原則選「除非手動停止」,確保 NAS 重開機後服務自動恢復
  • Compose 部署優先,設定可以版本控制,日後維護更容易

🔗 延伸閱讀

容器跑起來之後,下一步可以考慮加上 Nginx Proxy Manager 做反向代理,讓服務直接用網域名稱連接,不用記一堆 Port 號。

這篇有幫助嗎? 不用打指令,也能在 NAS 上跑 Docker 容器。