從零開始:先用「工作排程器」一次裝好 Portainer,再透過 Portainer 的 Stack 功能部署 IT-Tools。整合自兩篇 Marius Hosting 教學,每個步驟都附上原因說明與操作截圖,全程不需要開 SSH。
整個流程分三個階段:
- 第一階段:安裝 Portainer:準備環境、建立排程任務、取得 setup_token
- 第二階段:Portainer 初始設定:建立管理員、設定 Public IP、加入 Registries
- 第三階段:部署 IT-Tools:新增 Stack、貼上 Compose、開啟服務
開始前的準備
- 一台支援 Docker 的 Synology NAS
- DSM 7.2 以上使用 Container Manager;更舊的版本則叫 Docker。
- 具有管理員權限的 DSM 帳號(後面會被要求再輸入一次密碼)。
- 你的 NAS 區域網路 IP 與電腦上可用的記事本。
- NAS 能連上網路,因為安裝時需要下載 Docker 映像檔。
關於文中的示範值: 本文以
192.168.1.131作為 NAS 區網 IP,以volume1作為儲存空間名稱。請依你的實際環境替換。如果你的 docker 資料夾在 volume2,指令中的volume1也要一併改成volume2,否則資料會寫到錯的位置。
第一階段:安裝 Portainer
Portainer 是 Docker 的網頁管理介面,可以管理容器、映像檔、Stack、磁碟區與網路。IT-Tools 要透過它來部署,所以先裝好它。
步驟 1:安裝 Container Manager
開啟 DSM 的「套件中心」(Package Center),搜尋並安裝 Container Manager。若你的 DSM 低於 7.2,請改搜尋 Docker。
為什麼: Container Manager 提供 Docker 引擎。後面排程任務執行的
docker run指令,以及 Portainer 管理的對象,都依賴它。安裝完成後,File Station 裡通常會出現名為 docker 的共用資料夾,下一步會用到。

在套件中心搜尋並安裝 Container Manager
步驟 2:在 docker 資料夾內建立 portainer 資料夾
開啟 File Station,進入 docker 資料夾,新增一個資料夾,名稱為 portainer。
注意: 一律使用小寫,不要用大寫字母。路徑大小寫不符,後面掛載會找不到資料夾。
為什麼: 這個資料夾會掛載到容器內的
/data。Portainer 的帳號、設定、Stack 定義都存在這裡,即使之後刪除並重建容器,資料也還在。

File Station → docker → 新增資料夾 portainer(圖內有操作標示)
步驟 3:建立排程任務:使用者定義的指令碼
前往 控制台(Control Panel)→ 工作排程器(Task Scheduler)→ 新增(Create)→ 排定的任務(Scheduled Task)→ 使用者定義的指令碼(User-defined script)。
為什麼用工作排程器: 它能以 root 身分執行一段指令,效果等同於在終端機輸入 docker 指令,但你不必啟用 SSH,也不用自己登入終端機。
DSM 介面語言不同時,選單的中文名稱可能略有差異,請以英文名稱對照。

Task Scheduler → Create → Scheduled Task → User-defined script
步驟 4:填寫任務內容
點選後會開啟設定視窗,依序填寫三個分頁:
- General(一般):Task(任務名稱)輸入
Install Portainer;取消勾選 Enabled(已啟用);User(使用者)選root。 - Schedule(排程):選「Run on the following date(在下列日期執行)」,再選「Do not repeat(不重複)」。
- Task Settings(任務設定):勾選「Send run details by email(以電子郵件傳送執行詳細資料)」並填入你的信箱,接著把下方指令貼到「Run command(執行指令)」欄位,最後按 OK。
為什麼這樣設: 這個任務只需要手動執行一次,所以取消 Enabled,避免它依排程重複執行;使用 root 是因為 docker 指令需要管理權限;寄送執行詳細資料方便你事後查看是否有錯誤(需要 DSM 已設定郵件通知,沒設定也不影響安裝本身)。
docker run -d --name=portainer \
-p 8000:8000 \
-p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /volume1/docker/portainer:/data \
--restart=always \
portainer/portainer-ce
各參數的作用:
| 參數 | 作用 |
|---|---|
-d --name=portainer |
在背景執行,並把容器命名為 portainer。 |
-p 9000:9000 |
Portainer 的網頁介面連接埠,之後用 http://NAS-IP:9000 登入。 |
-p 8000:8000 |
Portainer 供 Edge Agent 使用的連接埠。只管理這台 NAS 時用不到,保留即可。 |
-v /var/run/docker.sock:... |
把 Docker 的控制通道交給 Portainer,它才能管理這台 NAS 上的容器。 |
-v /volume1/docker/portainer:/data |
把步驟 2 建立的資料夾掛載為資料目錄,讓設定永久保存。 |
--restart=always |
NAS 重開機或容器意外停止時自動重新啟動。 |
portainer/portainer-ce |
使用的映像檔;CE 是 Community Edition(社群版)。 |

三個分頁的填寫位置(圖內有操作標示)
步驟 5:確認警告並輸入 DSM 密碼
按下 OK 後會跳出一個警告視窗,直接再按 OK。接著輸入你的 DSM 管理員密碼,按 Submit(送出)。
為什麼: 以 root 身分執行自訂指令屬於高權限操作,DSM 會要求你確認身分。

警告視窗:按 OK

輸入 DSM 密碼後按 Submit
步驟 6:手動執行任務
回到工作排程器清單,選取 Install Portainer 這個任務,點上方的 Run(執行),在確認視窗按 OK。
指令會下載 Portainer 映像檔並啟動容器,耗時取決於你的網路速度,通常是幾秒到幾分鐘。

選取 Install Portainer → Run → OK
步驟 7:開啟 portainer 容器的日誌
開啟 Container Manager,左側選 Container(容器),選取 portainer,再點 Details(詳細資料)。

Container → 選取 portainer → Details
切換到 Log(日誌) 分頁,找到含有 admin initialization and backup 的那一行,點一下該行,按 Ctrl + C 複製。

Log 分頁:點選 admin initialization 那一行並複製
為什麼: 新版 Portainer 第一次建立管理員時,需要一組 setup_token 來證明「你是這台主機的管理者」。這組 token 會印在容器日誌裡。
步驟 8:取出 setup_token
在電腦上開啟記事本(或任何筆記軟體),按 Ctrl + V 貼上剛才複製的那一行。找到 setup_token=,只複製等號後面的那串字元,下一步要用。

只複製 = 之後的 token
第二階段:Portainer 初始設定
容器跑起來之後,用瀏覽器完成第一次登入與基本設定。
步驟 9:建立管理員帳號
在瀏覽器輸入 http://192.168.1.131:9000(換成你的 NAS IP)。輸入你要用的使用者名稱與高強度密碼,再輸入一次確認,並把步驟 8 複製的 setup_token 貼進去,按 Create user(建立使用者)。
若頁面還打不開,代表容器可能仍在下載或啟動,等一兩分鐘再重新整理。

填入帳號、密碼與 setup_token
步驟 10:跳過額外提示,進入本機環境
先按 Skip(跳過),再按 Get Started(開始使用)。這代表使用 Portainer 所在的本機 Docker 環境,也就是你的 NAS。

按 Skip

按 Get Started
步驟 11:設定環境的 Public IP
- 在右側 Environments 區塊,點小鉛筆圖示。
- 在新開的頁面找到 Public IP 欄位,填入你的 NAS 區網 IP(例如
192.168.1.131),按 Update environment。 - 右上角出現 Environment updated 就完成了,接著會看到儀表板。
為什麼: Portainer 會用這個 IP 產生容器連接埠的連結。沒設定的話,點連結可能會指向錯誤的位址(例如 0.0.0.0)。

Environments 區塊的小鉛筆圖示

Public IP 填入 NAS 區網 IP → Update environment

出現 Environment updated

設定完成後的儀表板
步驟 12:新增三個 Registries
左側選單點 Registries,按 + Add registry,選擇 Custom registry,然後依下表各新增一筆,每筆填完都按 Add registry 儲存。
| Name | Registry URL | 用途 |
|---|---|---|
Github |
ghcr.io |
更新由 GitHub 容器登錄庫提供的映像檔 |
CODEBERG |
codeberg.org |
更新由 Codeberg 提供的映像檔 |
Quay.io |
quay.io |
更新由 Quay.io 提供的映像檔 |
為什麼: 原作者的說明是,如果你之後想透過 Portainer 更新來自這些登錄庫的容器,就必須先把它們加進來。本篇的 IT-Tools 來自 Docker Hub,不受影響,但先加好可以省去日後麻煩。

Registries → + Add registry

Name 填 Github,URL 填 ghcr.io

Name 填 CODEBERG,URL 填 codeberg.org

Name 填 Quay.io,URL 填 quay.io
全部完成後,Registries 清單應該像下圖:

三個 registry 都已加入
步驟 13:隱藏藍色「Upgrade to Business Edition」按鈕(選用)
社群版介面上有一顆醒目的藍色升級按鈕。這一步純粹是外觀調整,不做也不影響任何功能,可以直接跳到步驟 14。原作者的做法是用瀏覽器的廣告攔截擴充功能把它隱藏:
- 安裝 Chrome 的 AdBlock 擴充功能:按 Add to Chrome,再按 Add extension。
- 回到 Portainer,在藍色按鈕上按右鍵,選 AdBlock → Block this ad。
- 依序按 Looks good 與 Confirm。

要隱藏的 Upgrade to Business Edition 按鈕

Add to Chrome

Add extension

右鍵 → AdBlock → Block this ad

按 Looks good

按 Confirm

完成後的畫面
這個設定只存在於安裝擴充功能的那個瀏覽器,換一台電腦或瀏覽器,按鈕還是會出現。
第三階段:透過 Portainer 部署 IT-Tools
IT-Tools 整合了超過 50 種開發與 IT 常用的小工具。它不需要額外設定,也不需要保存資料的磁碟區,部署完就能直接使用。
步驟 14:登入 Portainer,進入 local 環境
用剛建立的帳號密碼登入 Portainer。左側選單點 Home,再點中間名為 local 的方框。

Home → 點 local
步驟 15:新增 Stack
左側選單點 Stacks,再按 + Add stack。
為什麼用 Stack: Stack 就是用 Docker Compose 的格式描述服務。設定寫成文字,之後要修改、備份或重建都很清楚,也不需要在終端機手打長串指令。

Stacks → + Add stack
步驟 16:命名 Stack 並貼上 Compose 內容
在 Name 欄位輸入 it-tools,然後把下面的內容貼到 Web editor。
services:
it-tools:
container_name: IT-TOOLS
image: corentinth/it-tools
healthcheck:
test: curl -f http://localhost:80/ || exit 1
mem_limit: 2g
cpu_shares: 768
security_opt:
- no-new-privileges:true
ports:
- 5545:80
restart: on-failure:5
各設定的說明:
| 設定 | 說明 |
|---|---|
container_name: IT-TOOLS |
容器顯示名稱。 |
image: corentinth/it-tools |
使用的映像檔,未指定版本時預設取最新版。 |
healthcheck |
定期用 curl 檢查網頁是否正常回應,失敗時容器會被標示為不健康。 |
mem_limit: 2g |
記憶體用量上限 2 GB,避免容器吃光 NAS 資源。 |
cpu_shares: 768 |
CPU 資源競爭時的相對權重(預設為 1024,數字越低優先度越低)。 |
no-new-privileges:true |
禁止容器內的程序取得額外權限,是常見的安全加固設定。 |
5545:80 |
NAS 的 5545 埠對應到容器的 80 埠。若 5545 已被占用,改前面的數字即可。 |
restart: on-failure:5 |
容器異常結束時最多自動重啟 5 次。 |

Name 填 it-tools,Web editor 貼上 Compose
步驟 17:部署 Stack
頁面往下捲到底,按 Deploy the stack。首次部署要下載映像檔,可能需要幾分鐘,視網速而定。

捲到底部按 Deploy the stack
成功時,畫面右上角會出現 Success Stack successfully deployed。

部署成功訊息
步驟 18:開啟 IT-Tools
在瀏覽器輸入 http://192.168.1.131:5545(換成你的 NAS IP),挑選你需要的工具就能使用。
完成! 你現在有一個可以管理所有容器的 Portainer,以及一個開箱即用的 IT-Tools。
疑難排解與進階設定
安全提醒: Portainer 掛載了
docker.sock,等於擁有這台 NAS 上 Docker 的完整控制權,而且 9000 埠是未加密的 HTTP。請只在區域網路內使用,不要直接把 9000 埠對外轉發;要從外部連線時,請走 HTTPS 與反向代理,並設定強密碼。
使用反向代理(自己的網域)時,Portainer 打不開或登入失敗
需要在步驟 4 的指令中加入 TRUSTED_ORIGINS 環境變數,內容是你對外使用的網域名稱:
docker run -d --name=portainer \
-p 8000:8000 \
-p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /volume1/docker/portainer:/data \
-e TRUSTED_ORIGINS=portainer.yourname.synology.me \
--restart=always \
portainer/portainer-ce
把 portainer.yourname.synology.me 換成你自己的網域。修改後需要重建容器,步驟如下:
- 開啟 Container Manager,左側選 Container。
- 選取 portainer 容器,點 Action(動作)→ Stop(停止)。
- 再次選取它,點 Action → Delete(刪除)。
- 左側選 Image(映像),選取
portainer/portainer-ce,刪除該映像。 - 回到控制台 → 工作排程器,把 Install Portainer 任務的指令換成上面含 TRUSTED_ORIGINS 的版本,再手動執行一次。
警告: 重建時不要刪除 File Station 裡的 portainer 資料夾,否則帳號與所有 Stack 設定都會消失。
我的儲存空間不是 volume1
把指令中 -v /volume1/docker/portainer:/data 的 volume1 換成實際的名稱,例如 volume2。
想用 HTTPS 存取 Portainer 或 IT-Tools
原作者的說明是,透過 HTTPS 執行這兩個容器時,必須同時啟用 WebSocket 相關設定。詳細做法請看原作者的兩篇文章:How to Run Docker Containers Over HTTPS 與 Some Docker Containers Need WebSocket。
連接埠被占用(9000 或 5545)
Portainer 的 9000 埠可以在 docker run 指令中改左邊的數字(例如 -p 9100:9000);IT-Tools 則改 Compose 中的 5545:80 左邊的數字。改完後,瀏覽器網址也要跟著換成新的連接埠。
來源與相關連結
- Synology: 30 Second Portainer Install Using Task Scheduler & Docker(原文對應 Portainer CE 2.45.1)
- Synology: Install IT-Tools With Portainer(原文對應 IT-Tools v2024.10.22)
- 如何更新 Portainer
- 如何更新 IT-Tools 容器
- 如何備份 Docker 容器
- 如何重設 Portainer 密碼 \