在現代的跨平台開發與維運環境中,使用 QNAP NAS 搭配 Docker 是許多專業 IT 人的選擇。而 Portainer 提供了強大的 Web UI,可以集中管理多個 Docker 主機環境。但問題來了:
Portainer Agent 不支援 Windows。那如何將 Windows Docker Desktop 納入 QNAP Portainer 控管?
別擔心,這篇教學將手把手教你如何透過 Agent,讓 QNAP 上的 Portainer 完整控管你 Windows 上的 Docker。
前置條件
QNAP NAS 端
安裝好 Container Station 已部署 Portainer CE(Standalone) 並可登入(通常透過:http://<NAS_IP>:9000)
Windows 主機端
已安裝 Docker Desktop for Windows 可正常執行 docker run 指令 防火牆允許 8000 與 9000 port(視需求)
Step 1:產生 QNAP Portainer 安裝用的 Edge Agent 語法

登入 QNAP 上的 Portainer Web UI(http://<NAS_IP>:9000)
本文的範例是 https://192.168.2.2:9443
左側選單選擇:環境(Environments) → 點「+新增環境(Add Environment)」
選擇: Edge Agent
填入名稱:例如 Windows-Docker
點「生成(Create)」後,Portainer 會顯示一段 Docker 指令,像這樣:
docker run -d \ -p 8000:8000 \ -p 9000:9000 \ –name portainer_edge_agent \ –restart=always \ -v portainer_edge_data:/data \ -v \.\pipe\docker_engine:\.\pipe\docker_engine \ -e EDGE=1 \ -e EDGE_ID= \ -e EDGE_KEY= \ portainer/agent:latest
請保留這段指令,我們等會要在 Windows 上執行它。
Step 2:在 Windows 上部署 Edge Agent

請開啟 PowerShell,並將上面 Portainer 提供的指令貼上(注意不要換行):
docker volume create portainer_edge_data
docker run -d -p 8000:8000 -p 9000:9000 –name portainer_edge_agent –restart=always -v portainer_edge_data:/data -v \.\pipe\docker_engine:\.\pipe\docker_engine -e EDGE=1 -e EDGE_ID= -e EDGE_KEY= portainer/agent:latest
執行成功後,容器會啟動,並自動回報給 QNAP 上的 Portainer。
Step 3:驗證 Windows Docker 是否已納管
回到 QNAP 的 Portainer Web UI:
點選「環境」 應該會看到 Windows-Docker 的狀態變為 「已連線」
你可以點進去這台主機,直接透過 QNAP 介面查看、建立、管理 Windows Docker 上的容器。

延伸補充解答:
為何不能用 Portainer Agent? 因為 Portainer Agent 僅支援 Linux,無法掛載 /var/run/docker.sock 與 /
Edge Agent 有什麼特點? 使用 WebSocket 與 TLS 雙向通訊,適合跨網域/跨平台納管
我有多台 Windows,可以都用這方式嗎? 可以滴,我們能為每台建立不同的 Edge Agent,讓它們被納管到 Portainer
透過 Edge Agent,我們可以輕鬆讓 QNAP 上的 Portainer 控制 Windows Docker Desktop,不但安全穩定,也符合跨平台部署趨勢。這對 DevOps 團隊、資安人員或 IT 管理者來說,是非常實用的整合方式。