內容目錄
Dockge 完整教學:輕量、透明、優雅的 Docker 管理面板
什麼是 Dockge?
Dockge 是由 Uptime Kuma 作者 Louis Lam 開發的開源 Docker Compose 管理工具。它的核心理念只有一句話:
What you see is what you have on disk.(所見即磁碟所有)
與 Portainer 把設定吸入資料庫不同,Dockge 直接將你的 compose.yaml 儲存在實體資料夾中(如 /opt/stacks/你的服務名稱/compose.yaml),讓你隨時可以用 CLI、Git、文字編輯器直接存取,不被任何工具「綁架」。
核心功能一覽
| 功能 | 說明 |
|---|---|
| 📁 文件系統透明 | compose.yaml 儲存在本機磁碟,非資料庫黑盒 |
| 🔄 docker run 轉換器 | 一鍵將 docker run 指令轉換成 compose.yaml |
| ⚡ 即時反應式 UI | 日誌、狀態更新為毫秒級即時推送 |
| 🖥️ 內建 Web 終端 | 直接在瀏覽器中進入容器執行指令 |
| 🤝 GitOps 友善 | /opt/stacks 目錄可直接推送 GitHub |
| 🌐 多主機 Agent 模式 | 統一管理多台伺服器(v1.4 以後支援) |
安裝前準備
環境需求:
- 作業系統:Linux(Ubuntu / Debian / CentOS 等皆可)
- 支援架構:amd64、arm64、armv7(含 Raspberry Pi)
- 已安裝 Docker 與 Docker Compose v2
確認 Docker 已安裝:
docker --version
docker compose version
快速安裝(官方推薦方式)
方法一:自動下載 compose.yaml(最簡單)
# 建立目錄
mkdir -p /opt/stacks /opt/dockge
cd /opt/dockge
# 下載官方 compose.yaml
curl https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml --output compose.yaml
# 啟動 Dockge
docker compose up -d
啟動後,用瀏覽器開啟:http://你的伺服器IP:5001
方法二:手動建立 compose.yaml(可自訂)
mkdir -p /opt/stacks /opt/dockge
cd /opt/dockge
nano compose.yaml
貼上以下內容:
services:
dockge:
image: louislam/dockge:1
restart: unless-stopped
ports:
- 5001:5001 # 左邊是主機Port,可以改成你想要的
volumes:
- /var/run/docker.sock:/var/run/docker.sock # 讓 Dockge 管理 Docker
- ./data:/app/data # Dockge 自身資料
- /opt/stacks:/opt/stacks # 你的 Stack 目錄
environment:
- DOCKGE_STACKS_DIR=/opt/stacks
啟動:
docker compose up -d
方法三:自訂 Port 與目錄(進階)
若你想用不同的 Port 或 Stack 目錄,可使用官方的設定產生器 URL:
mkdir -p /opt/stacks /opt/dockge
cd /opt/dockge
# 自訂 port=8080,stacks 路徑=/home/user/stacks
curl "https://dockge.kuma.pet/compose.yaml?port=8080&stacksPath=/home/user/stacks" --output compose.yaml
docker compose up -d
首次設定
- 開啟瀏覽器,前往
http://伺服器IP:5001 - 建立管理員帳號與密碼
- 登入後,Dockge 會自動掃描
/opt/stacks目錄下所有現有的 Compose 專案並納入管理
💡 零遷移成本:如果你已有現成的 Compose 專案,只要把資料夾複製到
/opt/stacks/下,例如/opt/stacks/nginx/compose.yaml,重新整理頁面就會自動出現!
日常使用教學
建立新的 Stack
- 點選左側 「+ 新增 Stack」
- 輸入 Stack 名稱(例如:
nginx) - 在 YAML 編輯器中撰寫你的 compose.yaml 內容
- 點選 「部署」 → Dockge 會在
/opt/stacks/nginx/compose.yaml建立檔案並啟動服務
使用 docker run 轉換器
遇到網路上的 docker run 指令時:
- 點選介面上方的 「🔄 轉換 docker run」 按鈕
- 貼入指令,例如:
docker run -d -p 8080:80 --name mynginx -v /data:/usr/share/nginx/html nginx:latest
- 點選 「轉換」,自動生成格式完整的 compose.yaml:
services:
mynginx:
image: nginx:latest
ports:
- 8080:80
volumes:
- /data:/usr/share/nginx/html
進入容器終端
- 點選某個 Stack,展開其容器列表
- 點選容器右側的 「終端」 圖示
- 瀏覽器內直接彈出 Shell,可以執行任意指令(不需要 SSH)
即時查看日誌
點選容器旁的 「日誌」 圖示,即時串流顯示容器輸出,等同於執行 docker logs -f。
更新容器映像
- 進入對應 Stack
- 點選 「Pull & Restart」(拉取最新映像並重啟)
- 進度條即時顯示下載狀態
多主機管理(Agent 模式)
Dockge v1.4 以後支援管理多台遠端伺服器。
在遠端主機安裝 Agent
在第二台伺服器上,同樣用 compose.yaml 部署 Dockge,但以 Agent 模式運行:
services:
dockge-agent:
image: louislam/dockge:1
restart: unless-stopped
ports:
- 5001:5001
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data:/app/data
- /opt/stacks:/opt/stacks
environment:
- DOCKGE_STACKS_DIR=/opt/stacks
在主 Dockge 新增 Agent
- 在主控台點選 「Agents」
- 輸入遠端主機的 IP 位址與 Port(例如
192.168.1.100:5001) - 確認後,遠端主機的 Stack 就會出現在同一個面板中管理
搭配 Traefik 反向代理(進階)
若你想用域名 + HTTPS 存取 Dockge,可在 compose.yaml 加入 Traefik 標籤:
services:
dockge:
image: louislam/dockge:1
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data:/app/data
- /opt/stacks:/opt/stacks
environment:
- DOCKGE_STACKS_DIR=/opt/stacks
labels:
- "traefik.enable=true"
- "traefik.http.routers.dockge.rule=Host(`dockge.yourdomain.com`)"
- "traefik.http.routers.dockge.entrypoints=websecure"
- "traefik.http.routers.dockge.tls.certresolver=letsencrypt"
- "traefik.http.services.dockge.loadbalancer.server.port=5001"
⚠️ 注意:若透過 HTTPS 存取,請確保反向代理有支援 WebSocket,否則即時更新功能會失效。
資料夾結構說明
/opt/stacks/
├── nginx/
│ └── compose.yaml
├── nextcloud/
│ ├── compose.yaml
│ └── .env
├── uptime-kuma/
│ └── compose.yaml
/opt/dockge/
├── compose.yaml ← Dockge 自身
└── data/ ← Dockge 帳號、設定等資料
每個 Stack 就是一個獨立資料夾,乾淨、直覺、可直接用 Git 管理。
更新 Dockge 本身
cd /opt/dockge
docker compose pull
docker compose up -d
就這樣,沒有複雜的升級流程。
Dockge vs Portainer 快速比較
| 特性 | Portainer | Dockge |
|---|---|---|
| 設定儲存 | 資料庫(黑盒) | 本機檔案系統(白盒) |
| 遷移難度 | 高(需匯出/匯入) | 極低(複製資料夾即可) |
| 資源佔用 | 較高 | 極低 |
| RBAC 權限管理 | ✅ | ❌ |
| GitOps 整合 | 有限 | 原生支援 |
| 適合場景 | 企業、K8s 叢集 | Homelab、個人伺服器 |
| 介面美觀度 | 工業感 | 現代感 ⭐ |
常見問題
Q:我已有用 CLI 跑的 Compose,要怎麼讓 Dockge 接管?
把你的 compose.yaml 所在資料夾複製到 /opt/stacks/ 下,例如:
cp -r ~/myapp /opt/stacks/myapp
重新整理 Dockge 頁面,服務就會自動出現。
Q:用 Dockge 建立的服務,CLI 還能用嗎?
完全可以!Dockge 不攔截任何東西,你在終端機跑 docker compose up -d,Dockge 介面會即時感知並更新狀態。
Q:Dockge 適合管理 Kubernetes 嗎?
不適合。Dockge 專注於 Docker Compose,若你需要管理 K8s,請使用 Rancher 或 Portainer Business。
Q:如何備份?
只需備份以下兩個目錄:
/opt/stacks/— 所有服務的 compose.yaml(最重要)/opt/dockge/data/— Dockge 帳號設定
小結
Dockge 不是要取代所有 Docker 工具,它只是把「管理 Docker Compose」這件事做到極致。如果你:
- 在經營 Homelab 或個人 VPS
- 受夠了 Portainer 的複雜或資料庫黑盒
- 想要 GUI 的便利、同時保留 CLI 的掌控感
那 Dockge 就是為你量身打造的工具。
專案地址: https://github.com/louislam/dockge
官方網站: https://dockge.kuma.pet