自架服務
louislam/dockge avatar
louislam/dockge

Dockge:不绑架 compose 文件的 Docker 栈管理器

一個精美的、易於使用的、反應式的自託管 docker compose.yaml 面向堆疊的管理器。

24,338 個 Star825 個 ForkTypeScriptMIT

秒懂

它是什麼?
louislam/dockge 以 /opt/stacks 目錄管理 compose 栈,默認 Web 端口 5001,1.5.0 起支持多 Docker 主机 Agent。
適合誰用?
Dockge 适合以 docker compose 為中心、希望 Web 界面管理栈且保留磁盘上 compose 文件可编辑性的 homelab 用户;若你需要管理单個容器、独立 Docker 網絡或 Portainer 全套功能,Dockge 不是替代品。可在 /opt/dockge 目錄 curl 官方 compose.yaml 後 docker compose up -d,浏览器打開 localhost:5001,再用 Scan Stacks Folder 导入已有栈目錄。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 144 天前。
用什麼語言寫的?
主要是 TypeScript(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

相對 Portainer 的 compose 栈管理定位

GitHub 倉庫 louislam/dockge 在 README 首段自述為精美、易用、響應式的自托管 docker compose 栈管理器,homepage 為 dockge.kuma.pet。項目 TypeScript 编写,MIT 许可,素材快照约 24194 star、818 fork、168 個 open issue,最新 release 1.5.0 發布于 2025-03-30。Motivations 段落解释作者長期使用 Portainer,但對 stack 管理體驗不满:部署栈時 loading 图標可能转几分钟無進度、错误信息不够清晰;因此 Dockge 专注 docker-compose 场景與更好 UI/UX,並尝试用 ES Module 與 TypeScript 開發。

FAQ 明確回答「Dockge 是否 Portainer 替代品」:Portainer 覆盖更多 Docker 能力,Dockge 目前只聚焦 docker-compose;若你只需要 compose 栈管理,答案倾向 yes;若仍要管理 network、单容器等,答案倾向 no。FAQ 還写 Can I install both Dockge and Portainer? Yes。演示视频链接 youtu.be/AWAlOQeNpgU?t=48。Dockge 名字是作者自造词,希望读音接近 Dodge,但社区常读成 Dockage;README 說命名灵感來自 Twitch 表情 sadge、bedge、wokege 的 -ge 後缀。同作者 louislam 也做 Uptime Kuma,README 称若喜欢 Uptime Kuma UI 會喜欢 Dockge。

选型時應列出自己需要的操作(僅 compose 栈還是含 network/单容器),再對照 README FAQ 的 yes/no 答案,避免误把 Dockge 当作 Portainer 完全替代。

Motivations 段對 Portainer stack spinner 的批评是 Dockge 存在的直接理由,选型時應回忆自己是否遇到過类似「部署栈長時間無進度」問題。

功能列表:编辑器、Web 终端與多 Agent

README Features 段列出:创建/编辑/啟動/停止/重啟/删除 compose.yaml 栈,以及更新 Docker 镜像;提供 compose.yaml 交互式编辑器與交互式 Web 终端;1.4.0 新增多 Agent 支持,可在单一界面管理不同 Docker 主机上的栈;可把 docker run 命令转換為 compose.yaml;强调 File based structure,Dockge 不會「绑架」compose 文件,它们仍存于磁盘,可用普通 docker compose 命令操作;Reactive 特性指 pull/up/down 進度與终端輸出實時刷新;UI 风格與 Uptime Kuma 类似。

多 Agent 意味着中央 Dockge 可连接远程 Docker 主机,1.4.0 標題標注 New。文件落盘是核心:栈位于 stacks 目錄,CLI 與 Web UI 可並行编辑。FAQ 写主目標是 everything with compose.yaml,单容器请用 Portainer 或 Docker CLI,不要把 Dockge 当通用容器面板。Convert docker run 适合把旧脚本迁入 /opt/stacks/<栈名>/compose.yaml 結构,转換後仍需人工核對 volumes 與 network。

1.4.0 多 Agent 适合管理多台 homelab 主机上的 compose 栈,但 README Basic 段未写 agent 安装命令,远程 Docker 场景必須阅读 1.4.0 release notes。

Interactive Editor 與 Web Terminal 並列 Features,說明 Dockge 既改 compose 文件也看容器终端輸出,不僅是一個静態文件浏览器。

基础安装:/opt/stacks 與 localhost:5001

Requirements:Docker 20+ 或 Podman(Podman 需 podman-docker,Debian 示例 apt install podman-docker);支持 Ubuntu、Debian Bullseye+、Raspbian Bullseye+、CentOS、Fedora、Arch 等主流 Linux;Debian/Raspbian Buster 及以下不支持;Windows 尚未支持(Will be supported later);架构 armv7、arm64、amd64。默認栈目錄 /opt/stacks,默認端口 5001。

Basic 安装步骤 README 写得很具體:mkdir -p /opt/stacks /opt/dockge,cd /opt/dockge,curl https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml --output compose.yaml,docker compose up -d(若用 docker-compose V1 或 Podman 则 docker-compose up -d)。完成後 Dockge 在 http://localhost:5001。驗收建议:浏览器建 nginx 测试栈,观察 pull 進度是否實時更新;同時在宿主机 cd /opt/stacks/<栈名> 执行 docker compose ps,確認與 UI 一致。

Debian Bullseye 及以上與 Raspbian Bullseye 及以上在 Requirements 中明確支持,Buster 及以下被 README 直接標為不支持,升级操作係统前應先核對该列表。

Basic 安装僅三步 curl 與 docker compose up -d,門槛低于带數據庫的 Portainer 全栈安装,但仍要求主机已装 Docker 20+。

高级安装:dockge.kuma.pet 與 PUID/PGID

Advanced 段說明若栈目錄非默認,可用 curl "https://dockge.kuma.pet/compose.yaml?port=5001&stacksPath=/opt/stacks" 生成 compose,查询参數 port 與 stacksPath 可改。下载後應在 environment 同時設置 PUID 與 PGID(README 强调两者都設才生效),例如 1000:1000 設定栈文件所有者,否则默認 root。交互式生成器在 https://dockge.kuma.pet。

若改用非 /opt/stacks 路径,必須同步修改 DOCKGE_STACKS_DIR 環境变量與 volumes 挂载;README 用警告语气說明路径写错可能导致數據写到错误位置,且容器内路径必須與主机一致。私有镜像倉庫需挂载 /root/.docker/ 共享認證文件。迁移 homelab 時,應在新机器用相同 stacksPath 生成 compose,rsync /opt/stacks 内容,再在 UI 点 Scan Stacks Folder。

PUID 與 PGID 必須成對設置才會改变栈文件所有者,README 用 Both must be set 强调;僅設其一時仍默認 root 所有。

dockge.kuma.pet 生成器可改 port 與 stacksPath,适合非默認 /opt/stacks 的 homelab 目錄规范。

迁移已有栈:Scan Stacks Folder 流程

FAQ「Can I manage existing stacks?」给出三步:先 stop 栈;把 compose 文件移到 /opt/stacks/<stackName>/compose.yaml;在 Dockge 右上角下拉菜单点 Scan Stacks Folder,栈應出現在列表。這是從 Portainer 或纯 CLI 迁來的關键步骤,跳過 stop 可能导致状態不一致。

FAQ「Can I manage a single container without compose.yaml?」答案否定:主目標是 compose for everything,单容器继续 Portainer 或 CLI。Update 命令 README 写 cd /opt/dockge && docker compose pull && docker compose up -d,示例镜像 louislam/dockge:1。升级 1.5.0 前應在测试栈试 Web Terminal 执行 docker ps,並查 1.4.0+ 多 Agent 是否影響現有单机部署。docker run 转 compose 後务必人工检查 restart policy 與 volume 绑定。

Scan Stacks Folder 位于 Dockge 右上角下拉菜单,是导入已有 compose 栈的唯一 README 写明入口,迁移時勿跳過 stop stack 步骤。

FAQ 迁移三步中 stop stack 是硬性前提,否则 Dockge 扫描到的 compose 可能與运行中容器状態冲突。

Compose V2、MIT 许可與社区入口

README 写明 Dockge built on Compose V2,compose.yaml 亦称 docker-compose.yml。Bug 报告 github.com/louislam/dockge/issues,讨論 github.com/louislam/dockge/discussions;翻譯见 frontend/src/lang/README.md;PR 需读 CONTRIBUTING.md,並非所有 pull request 都會被接受。MIT 许可允许私有部署與修改。

24194 star 與同作者 Uptime Kuma 带來 UI 预期,但监控與 compose 管理职责不同。168 open issues,last push 2025-03-30 與 1.5.0 同期。Windows 原生支持 README 称 later。已用 Portainer 的团队可並行试 Dockge 管 compose 子集,再决定是否整體迁移 stacks 目錄。Motivations 還提到 develop with ES Module + TypeScript;若 love project 请 star。

Update 使用 docker compose pull 與 up -d,镜像示例 louislam/dockge:1;Contributing 段警告並非所有 PR 都會被接受,贡献前先读 CONTRIBUTING.md。

CONTRIBUTING.md 限制 PR 类型,Translation Guide 在 frontend 语言目錄,社区以 issues 與 discussions 分流 bug 與用法問題。

1.5.0 试用:reactive 终端與文件所有權

README 完整试用路径:/opt/dockge curl master/compose.yaml,docker compose up -d,浏览器 localhost:5001 建测试栈,观察 reactive terminal output。已有栈迁移:stop 後移到 /opt/stacks/<stackName>/compose.yaml,Scan Stacks Folder 导入,避免 Dockge 内外双份 compose 路径。

PUID/PGID 试驗:用 dockge.kuma.pet 生成自定义 stacksPath 的 compose,建栈後 ls -l /opt/stacks 检查 owner 是否 1000:1000。與 Portainer 並存時注意 network/volume 命名;FAQ 明確两者可同時安装。主机需 docker compose plugin(Compose V2),不能只有 legacy docker-compose 二進制。演示视频 youtu.be/AWAlOQeNpgU?t=48 可對照 UI,但驗收仍以 /opt/stacks 内 compose 可被 CLI 直接编辑為准。

Reactive 進度與 Web Terminal 是 Features 段两大交互卖点,驗收時應执行一次镜像 pull 观察 UI 日志是否實時刷新。

1.5.0 试用應包含一次 docker compose pull,驗證 reactive 日志;PUID/PGID 试驗用 ls -l 检查 /opt/stacks 所有者。

多 Agent、镜像更新與 Portainer 边界再確認

1.4.0 起 Multiple agents support 可在单一界面管理不同 Docker host 上的 stacks,README 未在 Basic 段给出 agent 安装细节,远程场景應读 1.4.0 release notes 與 hub.docker.com/r/louislam/dockge/tags。Update:cd /opt/dockge && docker compose pull && docker compose up -d,標簽示例 louislam/dockge:1。

FAQ 再次界定:Is Dockge a Portainer replacement? 取决于你是否只需 compose;若還要 network 與单容器,答案 no。Can I install both? Yes。Convert docker run、Interactive Editor、Web Terminal、Update Images 构成 Dockge 相對「只写 compose 文件」用户的完整闭環;不满足需求的场景應继续 Portainer 或 Docker CLI,而非期待 Dockge 扩展為通用面板。

hub.docker.com/r/louislam/dockge/tags 可核對標簽更新;FAQ 命名 Dockage 也被作者接受;與 Portainer 並存時注意 volume 名称冲突。

多 Agent 與 docker run 转換、Portainer 並存 FAQ 构成 Dockge 1.5.0 能力边界清单,超出清单的需求應继续用 Portainer 或 CLI。

驗收清单最後一項:在 /opt/dockge 执行 docker compose pull && docker compose up -d 後,確認 louislam/dockge:1 標簽已更新,且 /opt/stacks 内测试栈 compose 仍可用宿主机 docker compose 命令独立啟動,證明 File based 不绑架文件的設计成立。

編輯結論

Dockge 适合以 docker compose 為中心、希望 Web 界面管理栈且保留磁盘上 compose 文件可编辑性的 homelab 用户;若你需要管理单個容器、独立 Docker 網絡或 Portainer 全套功能,Dockge 不是替代品。可在 /opt/dockge 目錄 curl 官方 compose.yaml 後 docker compose up -d,浏览器打開 localhost:5001,再用 Scan Stacks Folder 导入已有栈目錄。 本專案核對項目1應依 README 的實際入口和版本標籤保存輸出,並以專案名稱、命令或檔案路徑標記,避免把未說明的行為當成保證。 本專案核對項目2應依 README 的實際入口和版本標籤保存輸出,並以專案名稱、命令或檔案路徑標記,避免把未說明的行為當成保證。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記