對 NAS 與自架族來說,「面板」這件事這幾年其實有點尷尬。多年前 Portainer 幾乎是預設答案——介面乾淨、Compose 編輯堪用、社群教學一查就有;但這兩三年情況改變很多。Portainer CE(Community Edition)的更新節奏明顯偏向商業版優先,許多曾經免費的功能被劃進 Business Edition:RBAC、稽核日誌、邊緣管理、Stack Webhook 自動同步等等。雖然個人使用 5 台節點以下的 BE 授權還是免費,但「免費版功能被閹割」的觀感、加上 UI 設計逐漸顯得老氣,是社群討論熱度持續發酵的主因。
於是「找 Portainer 替代品」這件事,從前年開始就陸續冒出幾個有意思的選擇:Dockge 主打可視化 Compose 編輯、Komodo 想做完整的 GitOps、Yacht 走極簡風……每個都解決一部分問題,但很少有同時把「多環境、Git 整合、卷瀏覽、終端與日誌」整套做齊的。Dockhand(GitHub 名稱 Finsys/dockhand)今年初開始在中文 NAS 圈炸開,被一票部落客形容為「神級 Docker 面板」,有點誇張,但實際裝下來會發現它的功能盤點非常完整,幾個關鍵體驗甚至已經把 Portainer CE 甩開好一段距離。
這篇實際上機把 Dockhand 跑一遍——主要功能、安裝步驟(docker run 與 docker-compose 兩種寫法)、在群暉 / 極空間 / TrueNAS 上的注意事項、和現有方案的對照,最後聊聊它的 BSL 1.1 授權對企業使用的意義。
一、Dockhand 是什麼
官方一句話定位:現代化、高效的 Docker 管理應用,提供即時容器管理、Compose 堆疊編排與多環境支援。所有功能放進一個輕量、注重隱私的容器映像裡,靠 Web UI 統一管理本機與遠端 Docker 主機。
關鍵事實先列出來:
- 作者 / Repo:
Finsys/dockhand(Docker Hub 映像為fnsys/dockhand) - 官方站:dockhand.pro
- 授權:BSL 1.1(Business Source License),個人與內部使用免費,不可作為商業 SaaS 對外提供;條款設定 2029 年自動轉為 Apache 2.0
- 企業 / 團隊版:另外提供商業授權,加上 LDAP/AD、RBAC、稽核日誌等
- 目前限制:尚未支援繁中/簡中 UI,社群已有 i18n issue 在排程
BSL 是這幾年新一代開源工具的常見選擇(HashiCorp Terraform、Sentry、CockroachDB 都走這條路)。對 NAS 玩家、家用伺服器、企業內部使用幾乎沒影響;只有「想拿來做付費託管 Docker 控制台對外賣」這類使用者要避開。
二、亮點功能盤點
第一次登入 Dockhand 是「無使用者」狀態——這是個小陷阱,請務必先到 Settings 手動建立帳號並開啟驗證,不然任何能連到 Web UI 的人都能直接操作你的 Docker。把這件事擺第一位講,是因為它真的很容易忘。
2.1 多環境管理(本地 + 遠端 docker.sock / API / Hawser)
Dockhand 不只是「管本機」的面板。除了預設的 Unix socket 映射,它原生支援三種遠端連線:
- Unix socket:本機掛載
/var/run/docker.sock,最直接 - Docker API:遠端 daemon 透過 TCP + TLS 連線
- Hawser:Dockhand 自家的安全代理,避免直接暴露 Docker API
對於要管多台 NAS 或一個小 Homelab cluster 的人來說,這個設計很實用。在 UI 上一個帳號可以同時切換多個 Environment,跨環境執行映像更新、漏洞掃描、活動日誌都會集中呈現。

2.2 直接拉 Git repo 部署 + Webhook
Stack 部署支援直接吃 Git URL,這對習慣把 Compose 檔放 Git 管的人簡直是剛需。私有倉庫支援兩種授權:
- HTTP:Personal Access Token / 帳密
- SSH:deploy key
更重要的是 Webhook——在 GitLab / GitHub / Gitea 設定推送 webhook 到 Dockhand,當 main 分支有更新,Dockhand 會自動重新拉 repo、套用新的 compose.yaml 並滾動部署。實質上是個迷你版 Argo CD:沒有 K8s 那麼重,但 GitOps 的精神已經到位。
2.3 全域環境變數
實務上同一台機器跑十幾個 stack,常會重複貼 timezone、PUID、PGID、APP_DATA 路徑等。Dockhand 提供 Global Env:在 Settings 集中定義,每個 Stack 可以直接 ${GLOBAL_TZ} 引用。改一次全部 stack 同步生效,比一個一個改 .env 直觀很多。
2.4 可視化容器卷瀏覽(busybox 即裝即刪)
這個功能我認為是目前所有 Docker 面板裡做得最聰明的一個。Docker volume 設計上權限完整、配置簡單,但缺點就是「路徑藏起來、人類不好看」。傳統做法是 SSH 進去 docker run --rm -v vol:/x busybox ls /x,每次都要打一次。
Dockhand 的解法:直接在 UI 點下去,它會自動拉一個臨時 busybox 容器掛上 volume,讓你在瀏覽器裡瀏覽、下載、上傳檔案;操作完容器就被刪掉,不留痕跡。對備份檢查、設定檔抽出、debug 路徑問題非常省事。
2.5 統一日誌與終端
Portainer 的日誌是「進到容器詳情頁→看日誌」的兩層體驗。Dockhand 把日誌做成側邊欄常駐,像 IDE 開 terminal panel 那樣:
- 跨容器快速搜尋與切換(毫秒級反應)
- 可調字體大小、捲動、下載、複製
- 同時開多個容器的日誌串流
終端管理也類似。可以指定 user、預設指令、快速搜尋容器,open 即用。一次同時 SSH 進三個容器再也不用切換瀏覽器分頁。
另外 Stack 列表沒有「進二級頁面」這種設計:點開 Stack 直接展開為各 service 的卡片,每張卡片有 CPU / 記憶體即時數字,可以單獨重啟某個 service。資訊密度比 Portainer 高很多。
三、安裝部署
最低需求:能跑 Docker 的任何 Linux(NAS、VPS、homelab 工作站皆可)、約 200MB 記憶體、一個未占用的 port。
3.1 docker run 一行起(適合家用 NAS)
群暉、QNAP、極空間用 docker run 最快:
# 建立資料夾
mkdir -p /volume1/docker/dockhand/data
cd /volume1/docker/dockhand
# 啟動 Dockhand
docker run -d \
--restart unless-stopped \
--name dockhand \
-p 3424:3000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(pwd)/data:/app/data \
fnsys/dockhand:latest
幾個重點:
- port 3000 是容器內部固定 port;外部映射隨意(例子用 3424,不易撞到)
/var/run/docker.sock一定要掛,這是 Dockhand 操作 Docker 的唯一入口/app/data要持久化,裡面存使用者、Stack 設定、Webhook token
3.2 docker-compose 範例
正式環境建議用 compose,方便版本控制與重啟。下面是兩個來源整理出的乾淨版本:
services:
dockhand:
image: fnsys/dockhand:latest
container_name: dockhand
restart: unless-stopped
ports:
- "3424:3000"
volumes:
# Docker 守護程序
- /var/run/docker.sock:/var/run/docker.sock
# 資料庫與設定(也可改成 named volume:dockhand_data:/app/data)
- ./data:/app/data
environment:
- TZ=Asia/Taipei
# 若改用 named volume,再補一段:
# volumes:
# dockhand_data:
啟動:
mkdir -p /volume1/docker/dockhand/data
cd /volume1/docker/dockhand
docker compose up -d
常用環境變數對照(從官方 Hub 與 issue 整理):
| 變數 | 預設 | 用途 |
|---|---|---|
TZ |
UTC |
容器時區,建議 Asia/Taipei |
PORT |
3000 |
容器內部監聽 port |
DATA_DIR |
/app/data |
資料持久化路徑 |
LOG_LEVEL |
info |
debug / info / warn / error |
OIDC_* |
(無) | 接 SSO 用,企業版用得到 |
3.3 在群暉 / 極空間 / TrueNAS 上跑的注意事項
各家 NAS 的小坑:
- 群暉 DSM 7.x:Container Manager(前身 Docker 套件)的「登錄」搜
dockhand,第一個fnsys/dockhand即是;建立容器時記得把/var/run/docker.sock加進「磁碟區」綁定。 - 極空間 ZOS:先到 Docker → 鏡像 → 加速器,補 Docker Hub 鏡像加速地址(中國大陸環境必要),不然會卡在拉映像那步。Compose 介面建議用 named volume
dockhand_data取代./data,避免遇到 ZOS 對 Docker 路徑的權限限制。 - TrueNAS SCALE:用 Custom App / Docker Compose UI;注意 SCALE 的 Docker socket 在
/var/run/docker.sock,但 IX-Apps 環境會把它代理過一層,第一次啟動權限可能不通,必要時改用 Hawser agent 模式。 - OpenWrt / 路由器類:能跑 Docker 就能裝,但 ARM 機型記得選對 tag——
fnsys/dockhand:latest是 multi-arch(amd64 + arm64),arm/v7 目前未官方支援。
四、初次設定的安全要點
裝完先別急著到處點,做這幾步:
- 建立管理員帳號:Settings → Users → Add user,把 admin 帳號設好強密碼。
- 開啟驗證:Settings → Authentication,把「Require login」打開。
- 設定環境(Environment):左側 Settings → Environments → Add environment,使用預設
Unix socket+/var/run/docker.sock,Public IP 填 NAS 內網 IP(之後跨環境互通會用到)。 - 時區:Settings → 改
Asia/Taipei,避免日誌時間錯亂。 - 反向代理 + HTTPS:對外用千萬不要 expose 3424 直接打。Caddy / Nginx Proxy Manager / Cloudflare Tunnel 三選一加 TLS。
- 限制 Docker socket 權限:能上正式機就盡量考慮 socket-proxy(如
tecnativa/docker-socket-proxy),把 Dockhand 能操作的 API endpoint 收斂到必要範圍。
五、與 Portainer / Yacht / Komodo 對比
把 NAS 圈最常見的選項並列一張表,比較好決定要不要換:
| 功能 | Dockhand | Portainer CE | Portainer BE | Yacht | Komodo |
|---|---|---|---|---|---|
| 容器 / 映像 / 網路 / 卷管理 | 完整 | 完整 | 完整 | 完整 | 完整 |
| 多環境(遠端 Docker) | 內建(API + Hawser) | 內建 | 內建 + Edge | 不支援 | 內建(Periphery agent) |
| Compose 視覺化編輯 | 拓樸圖 + 變數面板 | 文字編輯器 | 文字編輯器 | 文字編輯器 | 文字編輯器 |
| Git Stack + Webhook | 是(CE 即提供) | 部分 | 是 | 否 | 是 |
| 全域環境變數 | 是 | 否 | 是 | 否 | 是 |
| Volume 檔案瀏覽器 | 是(busybox 自動) | 否 | 否 | 否 | 否 |
| 統一日誌側邊欄 | 是 | 否 | 否 | 否 | 部分 |
| RBAC / 稽核 | 企業版 | 否 | 是 | 否 | 部分 |
| OIDC / SSO | 企業版 | 否 | 是 | 否 | 否 |
| 中文 UI | 尚未支援 | 是 | 是 | 部分 | 否 |
| 授權 | BSL 1.1 | zlib | 商用 | MIT | GPL-3.0 |
從表格看得出來,Dockhand 把 Portainer BE 才有的 Stack Webhook、全域環境變數、漏洞掃描整合下放到 CE 等價的免費版,再加上 Volume 檔案瀏覽器與統一日誌這兩個獨家亮點,純粹從功能對照表的「免費版能用到的東西」來看,CP 值非常高。
六、踩雷與觀察
實際跑了幾天的觀察:
- 沒有中文 UI:對英文不熟的家人朋友來說會卡。GitHub 上 i18n issue 已開,但短期內還是英文。
- Stack 拓樸圖編輯器對新手友善但對老手有點累——畫起 5 個 service 以上的網路關係會有點 lag,直接寫 yaml 還是比較快。建議新手用拓樸、熟手用 yaml,兩種混用最舒服。
- Volume 瀏覽器在 ARM NAS 上首次點開會慢:因為要拉 busybox arm 映像,第一次會 hang 個 5–10 秒,第二次就快了。
- Webhook 的 token 不會顯示第二次:建立 Stack 拿到 webhook URL 一定要立刻存起來;忘記只能砍掉重建。
- 升級流程:
docker compose pull && docker compose up -d,記得先cp -r data data.bak。BSL 1.1 沒有強制升級,但作者更新節奏算積極,平均兩週一個小版本。 - 與 Watchtower 共存:Dockhand 自己也有映像更新功能(在 Settings → Updates),如果跟 Watchtower 同時跑會搶資源、產生衝突,選一個用就好。
七、適合與不適合的場景
適合:
- 家用 / 個人 NAS 玩家,跑 10–50 個容器,想要一個比 Portainer CE 更舒服的 UI
- Homelab 多節點,需要把多台機器的 Docker 集中管
- 已經有 Compose 在 Git 倉庫,想試 GitOps 但又不想上 K8s + Argo CD
- 小團隊內部開發環境,要 RBAC 可以付費升企業版
不適合:
- 想做付費 SaaS 平台對外賣 Docker 控制台(BSL 1.1 不允許)
- 必須中文 UI 的場景(暫時等 i18n)
- K8s / Swarm 為主的環境(Dockhand 是純 Docker 面板,不管 K8s)
- 要超細緻稽核日誌、SOC 2 / ISO 認證需求(企業版才有完整支援)
八、小結
Dockhand 不是革命性的新發明,它只是把這幾年社群一直在喊的需求——Stack 直接吃 Git、全域變數、Volume 用瀏覽器看、跨環境統一管、日誌不切頁——一次到位地交出來。在 Portainer CE 商業化氣味越來越重的時刻,它出現的時間點很對。
對 NAS 自架族來說,現在就值得把它跟你現有的面板並行裝一陣子,看用得順不順手。資料卷掛好、別忘了開驗證、套個反向代理,遷移成本其實很低。BSL 1.1 在個人與內部使用層面完全等同開源;對企業使用者來說,2029 年自動轉 Apache 2.0 也是個合理的長期承諾。
至於它能不能真正取代 Portainer 在生態圈的地位?要看 1.x 之後的 i18n 與 K8s 整合走向。但作為 2026 年的「下一個 Docker 面板首選」,Dockhand 已經拿到入場券了。
參考資料
- GitHub Repo:Finsys/dockhand
- 官方網站:dockhand.pro
- Docker Hub:fnsys/dockhand
- BSL 1.1 授權說明:mariadb.com/bsl11
- Portainer CE / BE 功能差異:Portainer Editions

發佈留言