Synology Container Manager 完整教學:用 GUI 管理 Docker 不需要記指令
很多人聽說 NAS 可以跑 Docker,然後第一個反應是:「Docker 不是要記一堆指令嗎?」
這個印象在 Synology 上並不完全準確。從 DSM 7.2 開始,Synology 把原本的 Docker 套件升級成 Container Manager,提供完整的圖形化介面,你可以在 DSM 網頁上直接管理映像、建立容器、設定 Volume 和網路,甚至貼上 docker-compose.yaml 就能一鍵啟動服務。
這篇從概念到操作,帶你完整走過整個流程。
這篇適合誰
| 你的情況 | 建議先看哪段 |
|---|---|
| 完全不知道 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 官網的套件相容性頁面確認。
安裝步驟
- 登入 DSM,開啟套件中心
- 在搜尋欄輸入「Container Manager」
- 點擊安裝,確認授權條款
- 安裝完成後,在應用程式選單找到 Container Manager 圖示並開啟
- 首次開啟時,系統會引導你選擇 Docker 資料存放位置,建議選擇 SSD 快取或 NVMe 磁碟區以獲得最佳效能
安裝完成後,建議在 DSM 控制台 → 安全性 → 防火牆 確認你稍後會用到的 Port 是否需要開放規則。
拉取映像檔
映像是一切的起點。Container Manager 提供 Registry 搜尋介面,讓你不用記 docker pull 指令。
操作步驟
- 開啟 Container Manager,點擊左側選單的映像
- 點擊右上角新增 → 從 Docker Hub 新增
- 在搜尋欄輸入你要的映像名稱(例如
uptime-kuma) - 從結果列表選擇映像:
- 官方映像:有「Docker Official Image」標章,由官方維護,安全性較高
- 社群映像:例如
linuxserver/開頭的映像,通常有良好維護紀錄和詳細文件 - 選擇 Tag(版本標籤):
-
latest:最新穩定版,方便但有時不穩定 - 指定版本號(例如1.23.4):適合生產環境,升級時有明確控制 - 點擊套用,Container Manager 會開始下載映像
下載完成後,映像會出現在映像清單,顯示大小和建立時間。
建議:用
linuxserver.io的映像時,可以到他們的 文件網站 查看該映像支援的環境變數和 Volume 路徑,非常詳細。
建立容器
映像下載完成後,就可以從它建立容器。這個步驟是設定最多的地方,仔細看。
在映像清單選擇你的映像,點擊執行,進入容器建立精靈。
Port 映射
Port 映射的邏輯是:主機(NAS)Port : 容器內部 Port。
| 設定欄位 | 說明 | 範例 |
|---|---|---|
| 本機連接埠 | NAS 上你想開放的 Port | 8080 |
| 容器連接埠 | 映像文件裡指定的服務 Port | 80 |
設定後,你就能用 http://NAS-IP:8080 連到容器裡的 Port 80 服務。
注意事項:
- NAS 本身的某些 Port 已被佔用(例如 5000、5001 是 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 是最省事的方式。
操作步驟
- 在 Container Manager 左側選單點擊專案
- 點擊新增,輸入專案名稱(例如
uptime-kuma) - 選擇專案路徑(建議對應
/volume1/docker/uptime-kuma) - 在「建立 docker-compose.yml」區域,貼上你的 yaml 內容(貼上前可用 Docker Compose 產生器 / 檢查器 確認語法正確)
- 點擊下一步預覽設定,確認後點擊完成
- 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,但從外網還是連不到容器?
問題通常出在三個地方,依序確認:
- 容器本身的 Port 映射有沒有設正確
- DSM 防火牆有沒有允許那個 Port 的 TCP 連線
- 路由器的 Port Forwarding 有沒有把外部 Port 轉到 NAS 的 IP
如果三個都正常但還是連不到,確認你的 ISP 沒有封鎖該 Port(部分業者會封鎖 80、443 以外的 Port)。
Q3:更新容器後,資料不見了?
這是最常見的誤操作。如果你沒有設定 Volume,容器的資料只存在容器層,刪除容器就消失了。
往後的作法:
- 更新容器前,先確認所有重要路徑都有掛載對應的 NAS Volume
- 更新流程:停止容器 → 拉取新映像 → 刪除舊容器 → 用相同設定(Volume 不變)重新建立
- 有重要資料的服務,建議定期備份 /volume1/docker/ 整個目錄到 Hyper Backup
Q4:怎麼更新已在跑的容器到最新版本?
Container Manager 本身沒有一鍵更新按鈕,標準流程如下:
- 到映像頁面,找到該映像,點更新(或重新從 Registry 拉取)
- 等待新映像下載完成
- 停止並刪除舊容器
- 用同樣的設定(Volume、Port、環境變數都不變)重新建立容器
如果你用 Compose 部署,更新更簡單:在專案頁面點編輯,把映像 tag 改成新版本,存檔後點重新部署即可。
小結
Container Manager 把大部分的 Docker 操作都搬進了圖形介面,對不習慣指令列的人來說,這個門檻降低了很多。
幾個關鍵原則,記住就能少踩坑:
- Volume 一定要設,不然資料在容器刪除或更新後會消失
- 時區記得設定(
TZ=Asia/Taipei),不然記錄的時間戳會對不上 - 重啟原則選「除非手動停止」,確保 NAS 重開機後服務自動恢復
- Compose 部署優先,設定可以版本控制,日後維護更容易
🔗 延伸閱讀
- Synology NAS 必裝 Docker 服務推薦
- 把 Docker 資料搬到 NVMe SSD:完整遷移流程
- Nginx Proxy Manager 反向代理完整教學
- Vaultwarden 密碼管理器:在 Synology 上自架 Bitwarden
容器跑起來之後,下一步可以考慮加上 Nginx Proxy Manager 做反向代理,讓服務直接用網域名稱連接,不用記一堆 Port 號。