NAS 圈最常聽到「Docker」,但很多人裝好 NAS 之後還是搞不清楚它到底是什麼。
套件中心裝不到的服務,別人說「用 Docker」。Jellyfin、Vaultwarden、Immich,教學文章全部叫你跑 Docker。但 Docker 聽起來很程式、很技術,不懂指令的人要怎麼開始?
這篇從頭說清楚 Docker 是什麼,以及 Synology 的 Container Manager 怎麼讓你完全不用打指令就能跑服務。
🎯 這篇適合誰
| 你的情況 | 建議先看哪段 |
|---|---|
| 完全不知道 Docker 是什麼 | 從頭看,先看「Docker 解決什麼問題」 |
| 知道概念,想知道 NAS 上怎麼跑 | 跳到「Container Manager」 |
| 想動手跑第一個容器 | 跳到「實作」 |
| 容器跑起來有問題 | 直接看「常見問題」 |
🔧 Docker 解決什麼問題
先從問題說起。
傳統安裝軟體的方式:把程式裝在機器上,共用同一套系統環境。問題是,每個程式可能需要不同版本的相依套件,裝多了就容易互相衝突。一個服務升級,可能把另一個服務搞壞。
Synology 的套件中心是官方管理的,他們控制了什麼版本、什麼服務可以裝,所以衝突問題比較少——但可以裝的服務也因此大幅受限。
Docker 的解法是:把每個程式連同它需要的環境一起「打包」,封在一個獨立的容器裡。
容器之間完全隔離,互不影響。A 服務升級、崩潰、重裝,B 服務完全不知道,繼續跑。這樣你就能在同一台 NAS 上同時跑十幾個服務,彼此和平共存。
📦 三個核心概念
映像檔(Image)
映像檔是程式的「安裝包」,裡面包含程式和它需要的所有執行環境,打包好了,隨時可以用。
比喻: 映像檔像食譜。食譜本身不是食物,不會變化,只是一份說明書。
映像檔從 Docker Hub 下載,例如 linuxserver/jellyfin、vaultwarden/server 都是別人做好的映像檔,直接拿來用就好,不需要自己製作。大小從幾十 MB 到幾 GB 不等。
版本標籤(Tag): 映像檔名稱後面通常跟版本,例如 nginx:latest 或 nginx:1.25。latest 是最新版,一般用這個。如果你需要固定在某個版本不升級,才指定版本號。
容器(Container)
容器是映像檔「跑起來」後的實體。
比喻: 根據食譜做出來的菜就是容器。同一份食譜可以做出很多盤,每盤都是獨立的一份。
容器是動態的——可以啟動、停止、刪除、重建。刪掉一個容器,用同一個映像檔再建一個,跟原來一模一樣。
Volume(掛載目錄)
容器預設是「無狀態」的。容器刪掉,裡面的資料也跟著消失。
Volume 的作用是: 把 NAS 上的某個資料夾「掛進」容器,讓資料存在容器外面的 NAS 上,而不是在容器裡面。
比喻: 容器像密封廚房,Volume 是從外面開的窗口——食材從外面遞進來,做好的東西也能傳出去。
最重要的實際意義: 升級容器版本時,刪掉舊容器、跑新容器,Volume 裡的資料完全不受影響,設定和資料都還在。沒有 Volume,升級等於重頭來過。
掛載方式: 把 NAS 上的某個資料夾(例如 /docker/vaultwarden/)對應到容器內的路徑(例如 /data/)。容器寫入 /data/ 的東西,實際上就存在 NAS 的 /docker/vaultwarden/ 裡。
🔌 Port 對應是什麼
這是新手最常卡住的概念。
每個容器服務在容器內部跑在某個 Port(通訊埠)上。但從外面(你的瀏覽器)要連進去,需要把 NAS 的某個 Port 「對應」到容器的 Port。
比喻: NAS 是一棟大樓,Port 是房間號碼。容器住在地下室 80 號房,但大樓對外只開放 8080 室的門。你設定「外面的 8080 → 轉到地下室 80」,從外面進來就能找到那個容器。
格式是 本機 Port:容器 Port,例如:
- 8080:80 — 連到 NAS 的 8080,會轉進容器的 80
- 3001:3001 — 連到 NAS 的 3001,轉進容器的 3001
Port 不能重複: 每個容器的本機 Port 不能跟其他服務衝突。8080 已被佔用的話,下一個服務就用 8081 或其他空閒的號碼。
怎麼知道容器要用哪個 Port? 每個映像檔的 Docker Hub 頁面都會說明,找到映像後看說明文件的 Port 欄位。
⚖️ 跟套件中心安裝的差別
| 套件中心安裝 | Docker 容器 | |
|---|---|---|
| 安裝方式 | 一鍵安裝 | 下載映像檔,設定後跑起來 |
| 可用服務 | Synology 官方支援的才有 | 幾乎所有開源軟體都有 |
| 隔離性 | 共用系統環境,可能衝突 | 完全隔離,互不影響 |
| 更新方式 | 套件中心一鍵更新 | 拉新映像檔,重建容器 |
| 設定複雜度 | 簡單,新手友善 | 需要了解 Port、Volume 概念 |
| 資料管理 | 系統幫你管 | 自己指定 Volume 路徑 |
什麼時候用套件中心? 官方有支援的服務,例如 Synology Drive、Active Backup、Surveillance Station,套件中心裝最簡單,更新也省事。
什麼時候改用 Docker? 你想裝的服務套件中心沒有,或者需要比官方版更新的版本,或者想要更多控制彈性(例如 Vaultwarden、Immich、Jellyfin、Home Assistant)。
🐋 Synology 上的 Docker:Container Manager
Synology 把 Docker 包裝成「Container Manager」,安裝後透過 DSM 圖形介面操作,完全不需要打指令。
DSM → 套件中心 → 搜尋「Container Manager」→ 安裝
安裝完成後可以透過 GUI 操作: - 搜尋並下載映像檔(登錄表) - 建立容器、設定 Port 對應和 Volume 掛載 - 查看每個容器的狀態、CPU / 記憶體用量、即時記錄 - 貼上 docker-compose.yml 一鍵啟動多容器服務(專案頁面)
硬體限制: Container Manager 需要 x86_64 或 ARMv8 處理器,Plus 系列(DS923+、DS925+、DS1522+ 等)都支援。入門機 J 系列(DS223j 等)不支援。
🛠️ 實作:跑起第一個容器
以 Nginx 為例,這是最簡單的 Web 伺服器,用來練習最合適——映像小、下載快、跑起來馬上能驗證。
步驟一:下載映像檔
Container Manager → 登錄表 → 搜尋 nginx → 選 nginx:latest → 下載
下載進度在「登錄表」→「映像檔」頁面查看,完成後映像出現在清單。
步驟二:建立容器
Container Manager → 容器 → 新增 → 選擇 nginx 映像檔
填入設定:
- 容器名稱: nginx-test(自訂,方便辨識)
- Port 對應: 本機 8080 → 容器 80
- 自動重新啟動: 總是
- Volume: 這個練習不需要設定,Nginx 預設頁面不需要外部資料
步驟三:確認成功
瀏覽器開 http://NAS的IP:8080,看到「Welcome to nginx!」就成功了。
練完不需要了,到 Container Manager 把容器停止、刪除,完全不影響 NAS 其他任何東西。這是 Docker 的優點——測試完全沒有後遺症。
📄 docker-compose 是什麼
你在各種教學文章裡一定會看到 docker-compose.yml。這是一種把容器的所有設定(Port、Volume、環境變數)寫成一個檔案的方式,不需要在 GUI 裡一個一個填。
適合場景: 需要多個容器同時運作的服務。例如 Nextcloud 需要同時跑 Web 伺服器和資料庫,用 Compose 可以一次設定好兩者的關係和啟動順序。
Synology 怎麼用: Container Manager → 專案 → 新增 → 貼上 yaml 內容 → 完成。不需要 SSH,不需要指令。
很多開源服務的官方文件都會直接提供 docker-compose.yml 範例,複製貼上,改一下路徑,跑起來。
❓ 常見問題排解
容器建立後一直顯示「停止中」或「錯誤」?
點開容器 → 記錄,看最後幾行的錯誤訊息。常見原因: - Volume 路徑不存在: 先用 File Station 把資料夾建好再跑容器 - Port 衝突: 本機 Port 已被其他服務佔用,換一個號碼 - 映像檔下載不完整: 刪掉映像檔重新下載
容器重開機後沒有自動啟動?
建立容器時把「自動重新啟動」設為「總是」。如果當初沒設,可以進容器設定改。設好之後,NAS 重開機後所有服務都會自動恢復。
映像檔怎麼更新?
- Container Manager → 登錄表 → 搜尋同名映像檔 → 下載新版
- 停止舊容器
- 用相同的 Port 和 Volume 設定建立新容器
- 確認新容器正常後,刪除舊容器和舊映像檔
Volume 裡的資料完全不受影響,設定和資料都保留。
NAS 記憶體跑 Docker 夠嗎?
每個容器依服務不同,大概佔用 100MB–500MB 記憶體。原廠 2GB 記憶體的 NAS,同時跑超過 3–4 個容器可能會感覺變慢。需要擴充記憶體可以參考 NAS 記憶體升級指南。
什麼是環境變數(Environment Variables)?
很多映像透過環境變數來控制行為,例如設定時區、語言、管理員密碼。在容器設定頁面的「環境」分頁填入。最常見的是 TZ=Asia/Taipei(設定時區),幾乎每個容器都建議加。
🧭 下一步
跑起第一個容器之後,下一步是開始裝真正實用的服務。Synology Container Manager 完整使用指南 有更詳細的設定說明(Volume 路徑慣例、環境變數、Compose 實際範例),NAS 必裝 Docker 服務推薦 整理了最值得裝的服務清單,可以直接從裡面挑一個開始試。
✨ 小結
Docker 說難不難,核心就三個概念:
- 映像檔:程式的食譜,從 Docker Hub 下載
- 容器:食譜跑起來的實體,可以任意建立和刪除
- Volume:資料存在容器外面,升級不遺失
搞清楚這三件事,加上 Port 對應的邏輯,你就能看懂任何 Docker 安裝教學,跑起任何服務。
🔗 延伸閱讀
- Synology Container Manager 完整使用指南
- NAS 必裝 Docker 服務:10 個實用推薦
- Portainer:用視覺化介面管理 Docker 容器
- Synology NAS 新手設定清單:買回來第一件事做什麼