
用 Dockge 管好一堆 Compose:可视化管理,文件还在磁盘上
Dockge 是一款专注管理 Docker Compose 栈的开源面板:在浏览器中创建、编辑、启停和更新服务,同时让 compose.yaml 留在磁盘上。本文介绍安装、迁移旧栈及日常管理。
用 Dockge 管好一堆 Compose:可视化管理,文件还在磁盘上
前面写过 Emby、FRP……家里 NAS 上的 compose.yaml 越攒越多:改端口要 SSH,看日志要敲命令,更新镜像还得记住目录在哪。这时候缺的不是「再学一份 yaml」,而是一个专门管 Compose 栈的面板。
Dockge(发音接近 dodge / dockage 都行)就是干这个的:开源、自托管,界面风格和作者另一款作品 Uptime Kuma 一脉相承。它盯着磁盘上的 compose.yaml,创建 / 编辑 / 启停 / 更新镜像都能在浏览器里完成,同时不会把你的编排文件「绑架」进数据库——你照样可以 cd 进目录用 docker compose。
官方入口建议先收藏(正文会反复贴):
- 官网 / 交互式 compose 生成:https://dockge.kuma.pet
- GitHub 仓库:https://github.com/louislam/dockge
本教程按官方推荐的 Docker Compose 安装;核对日 2026-11-06(Asia/Shanghai)。当时最新正式版标签是 1.5.0,官方示例镜像写的是大版本线
louislam/dockge:1。以后以 GitHub Releases 和官方compose.yaml为准。群晖用户看文末「群晖补充」——Container Manager 管项目、Dockge 管一堆 Compose,互补而不是二选一硬刚。
![]()
实机:Dockge 首页栈列表
它适合谁?和 Portainer 差在哪
一句话:Dockge = Compose 栈专用面板;Portainer = 更全能的 Docker 管理平台。
官方 FAQ 自己也写得很清楚:
- 如果你主要用 docker compose 管服务,Dockge 往往更对味:编辑器、实时拉取/启停进度、终端输出都围着
compose.yaml转。 - 如果你还要管单容器、网络、卷、Swarm、K8s、复杂用户权限,Portainer(或 Docker CLI)覆盖面更大。
- 可以同时装两者,不冲突。
Dockge 的几个卖点(来自官方 README,不是营销话):
- 管理
compose.yaml:创建 / 编辑 / 启动 / 停止 / 重启 / 删除,以及更新镜像 - 交互式 compose 编辑器
- Web 终端(1.5.0 起默认关闭,安全原因,下文单独说)
- 1.4.0+ 多 Agent:一台面板管多台 Docker 主机上的栈
- 把
docker run ...转成compose.yaml - 文件式结构:栈就躺在你指定的 stacks 目录里,CLI 仍可用
动机页里作者提到用过 Portainer,但对「部署时转圈、报错不够清楚」不满意,才做了这个更聚焦 Compose 的东西——对家用 NAS 堆栈场景,这个切口很实用。
开始前:准备清单
确认机器已经装好 Docker 20+,并且:
能正常输出版本(注意是带空格的 Compose V2 插件;旧的 docker-compose 二进制官方也兼容,但新环境请优先 Compose V2)。
你需要:
- 一台 Linux 主机或 NAS(amd64 / arm64 / armv7;官方尚未支持 Windows 宿主)
- 能挂载 Docker 套接字:
/var/run/docker.sock - 规划好 stacks 目录(默认
/opt/stacks)和 Dockge 自己的安装目录(官方示例/opt/dockge) - 浏览器能访问主机的 5001 端口(可改)
权限提醒:Dockge 通过 docker.sock 管理本机容器,等价于较强的主机权限。只在信任的内网或经 VPN / 反代鉴权后暴露;不要把 5001 裸奔到公网。
安装:官方三条命令
官方「Basic」路径(路径可按需改,下文「改 stacks 路径」会讲约束):
装好后浏览器打开:
http://服务器局域网IP:5001
本机可试:http://localhost:5001
第一次打开会引导创建管理员账号,按提示设用户名和密码即可。
![]()
实机:mkdir / curl compose / up -d
![]()
实机::5001 创建管理员账号
官方 compose 长什么样
当前官方 compose.yaml 核心大致如下(以仓库 master 为准,安装时请直接 curl,勿长期手抄过期片段):
说明几处最容易踩坑的地方:
- 镜像
louislam/dockge:1:跟大版本线;正式小版本可在 https://github.com/louislam/dockge/releases 查看(本教程核对时为 1.5.0)。一般保持:1即可,需要钉死时再改成louislam/dockge:1.5.0。 docker.sock:Dockge 用来调用本机 Docker;这是能力来源,也是风险来源。./data:Dockge 自己的数据(账号等),相对/opt/dockge。- stacks 卷:左右路径必须完全一致。官方用红字警告——写错可能导致文件落到错误路径。正确示例:
/opt/stacks:/opt/stacks;错误示例:/docker:/opt/stacks(两边不一致)。 DOCKGE_STACKS_DIR必须指向容器内看到的那个 stacks 路径(与挂载右侧一致)。
私有镜像仓库可选再挂 /root/.docker/(见官方注释)。需要让 stacks 文件归属某用户时,可同时设置 PUID / PGID(两者都设才生效)。
想改端口或 stacks 路径
官网提供带查询参数的生成器,例如:
把 port、stacksPath 换成你的值即可。改完仍要满足「宿主机路径 = 容器内路径」,并同步改 DOCKGE_STACKS_DIR。
交互式生成页:https://dockge.kuma.pet
第一个栈:在面板里新建
登录后,点创建 / 新建 Stack(界面文案可能随语言包略有差异):
- 给栈起名,例如
whoami(会对应目录/opt/stacks/whoami/) - 在编辑器里写或粘贴
compose.yaml - 需要环境变量时,按界面提示添加(会落到该栈目录下的配套文件)
- 点部署 / Deploy,右侧或下方会实时打出 pull / up 日志
最小演示可用:
部署成功后,浏览器打开 http://服务器IP:8089 应能看到 whoami 响应。回到 Dockge,应能看到该栈状态、容器列表,并可停止 / 重启 / 更新镜像。
![]()
实机:新建栈 + whoami compose
![]()
实机:实时部署 / 重启日志
SSH 验证「文件还在磁盘上」:
这正是 Dockge 和「配置被关进面板数据库」类工具最大的差别:Git 备份、restic、照常 CLI,都还成立。
![]()
实机:ls /opt/stacks 证明文件还在磁盘
把已有栈「收编」进 Dockge
家里早就有一堆 compose 怎么办?官方 FAQ 步骤:
- 先停止该栈(
docker compose down或你原来的方式) - 把编排文件挪到:
/opt/stacks/<栈名>/compose.yaml(目录名即栈名;文件名官方示例为compose.yaml,也兼容常见的docker-compose.yml场景,以面板扫描结果为准) - 在 Dockge 右上角菜单点 Scan Stacks Folder
- 列表里应出现该栈,之后即可在面板启停
注意:路径、相对卷挂载、外部 network 名等,挪目录后要再对一下,避免相对路径失效。
![]()
实机:扫描 stacks 目录收编旧栈
日常操作速查
| 你想做的事 | 在 Dockge 里 |
|---|---|
| 改端口 / 镜像标签 | 打开栈 → 编辑 compose → 保存并重新部署 |
| 看启动是否卡在 pull | 部署过程实时日志 |
| 更新镜像 | 栈详情里的更新 / Update 类操作(以界面为准) |
| 停掉某个栈 | Stop;需要清容器再 Up |
docker run 懒得手写 compose | 用官方「Convert docker run」类入口贴命令生成 |
| 多台机器 | 1.4.0+ 配置 Agent,一台 UI 管多主机(进阶,本篇只点名) |
更新 Dockge 自己:
可选:Web Console(默认关)
从 1.5.0 起,出于安全原因,浏览器里的 Console 功能默认关闭。官方 Release 写明:若你理解风险,可通过环境变量开启:
改完后重新 docker compose up -d。
上游曾修复与 Console 相关的命令注入类问题(见 GitHub Security Advisory GHSA-7vx4-hf96-mqq6,在 1.5.0 修补)。家用建议:能不用就不用;排障优先 SSH 或 docker compose logs。若开启,务必限制谁能登录 Dockge。
群晖补充:和 Container Manager 怎么分工
群晖自带的 Container Manager 已经能「项目」方式跑 compose,和本系列 Emby 等教程一致。Dockge 不是要换掉它,而是多一个选择:
- Container Manager:和 DSM 权限、共享文件夹、防火墙集成紧,适合「一个项目一个项目」在套件里点。
- Dockge:当你在同一台(或几台)机器上堆了很多 compose、想要统一列表、实时日志、文件仍在
/opt/stacks(或你映射的同名路径)时更爽。
在群晖上装 Dockge 的注意点:
- 需允许容器访问 Docker 套接字(等同高权限,只给信任面板)。
- stacks 目录建议用 File Station 建清晰路径,映射时左右路径一致这一条在群晖上同样致命——不要左边
/volume1/docker/stacks、右边却写成/opt/stacks还声称一致;要么两边都写成同一个绝对路径,要么按官方约束改DOCKGE_STACKS_DIR与挂载使两侧相同。 - 防火墙放行 5001(或你改的端口)。
- 若 DSM 较旧、Compose 插件行为怪异,优先在支持良好的 Docker 环境(独立 Linux / 较新 DSM)上跑面板。
具体点选截图见 screenshot-plan.md 群晖段(实机后补)。
常见坑
- stacks 左右路径不一致 → 文件写到奇怪位置,面板和 CLI「各看各的」。装之前把官方警告读两遍。
- 5001 无法打开 → 容器没起来、端口被占、或系统/云防火墙未放行。先
docker compose -f /opt/dockge/compose.yaml ps。 - Scan 不到旧栈 → 目录层级不对(必须是
stacks/<name>/compose.yaml),或忘了先停再挪。 - 权限 / 属主混乱 → 需要时同时设
PUID+PGID;不要只设一个。 - 把面板暴露公网 → 等于接近 Docker 根权限暴露。用 VPN、Tailscale、或带鉴权的反向代理;并强密码。
- 以为能替代一切 → 单容器、复杂网络拓扑仍可能要 CLI 或 Portainer。
小结
- Dockge 专攻 Compose 栈:好看、实时、文件仍在磁盘。
- 官方安装:
/opt/dockge+ curl 官方 compose +docker compose up -d,浏览器 :5001。 - stacks 挂载左右路径必须相同;默认
/opt/stacks。 - 旧栈挪进 stacks 目录后 Scan Stacks Folder。
- Console 默认关;开启需自担风险。
- 和 Portainer / 群晖 Container Manager 可以共存,按场景选用。
官网与源码:
下一步你可以用它把本站系列里的 Emby、FRP 客户端等,都收进同一个 stacks 目录,列表一目了然。硬盘与配置的备份仍然要自己做——面板只是管理方式,不是备份策略。
(步骤实机图与封面已就绪;发表前仍需确认。清单见 screenshot-plan.md。)


