news 2026/7/31 10:17:06

Dockge:开源Docker Compose可视化管理神器,轻量级Portainer替代

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Dockge:开源Docker Compose可视化管理神器,轻量级Portainer替代

Dockge:开源Docker Compose可视化管理神器,轻量级Portainer替代

背景

管理 Docker 容器时,你是否遇到过这些烦恼:

  • 命令行操作繁琐,容易出错
  • Portainer 界面复杂,加载慢
  • docker-compose.yaml 文件修改不方便
  • 多台服务器管理需要频繁切换
  • 想用命令行又记不住那么多参数

今天介绍一款专为 Docker Compose 设计的开源管理工具——Dockge,在 GitHub 上已获得17K+ Star

什么是 Dockge?

Dockge 是一个美观、易用、响应式的自托管 Docker Compose 堆栈管理器,由 Uptime Kuma 的作者开发。

核心特性:

特性说明
可视化管理图形化界面管理 compose 项目
交互式编辑器可视化编辑 docker-compose.yaml
Web 终端内置交互式容器终端
多主机支持一界面管理多台 Docker 服务器
命令转换docker run 转 compose.yaml
文件自主compose 文件存储在本地,不锁定
实时响应进度和终端输出实时显示

GitHub 地址:https://github.com/louislam/dockge

官网:https://dockge.kuma.pet

Dockge vs Portainer

对比项DockgePortainer
定位专注于 Compose通用容器管理
界面现代化简洁功能丰富但复杂
启动速度快速响应较慢,加载久
文件管理compose 文件本地存储数据库存储
学习曲线低,上手快中等
资源占用轻量较重
多主机✅ 原生支持✅ 支持
单容器管理❌ 不支持✅ 支持

Dockge 的设计理念:

  • 用 docker-compose.yaml 做一切
  • 不绑架你的文件,存储在本地
  • 专注于堆栈管理,而非通用功能
  • 界面美观,响应迅速

快速上手

安装

方式一:一键部署(推荐)

# 创建目录mkdir-p/opt/stacks /opt/dockgecd/opt/dockge# 下载 compose.yamlcurlhttps://raw.githubusercontent.com/louislam/dockge/master/compose.yaml--outputcompose.yaml# 启动服务dockercompose up-d# 访问管理界面# http://localhost:5001

方式二:自定义配置

# 自定义端口和存储路径curl"https://dockge.kuma.pet/compose.yaml?port=8080&stacksPath=/home/user/stacks"--outputcompose.yaml

首次配置

  1. 访问http://localhost:5001
  2. 创建第一个堆栈(Stack)
  3. 粘贴或编写 docker-compose.yaml
  4. 点击部署

核心功能详解

1. 堆栈管理

Dockge 的核心功能是管理 Docker Compose 堆栈:

创建堆栈:

1. 点击 "Create Stack" 2. 输入堆栈名称(如 my-website) 3. 编写或粘贴 compose.yaml 4. 点击 "Deploy"

管理操作:

操作说明
Start启动堆栈
Stop停止堆栈
Restart重启堆栈
Delete删除堆栈
Pull更新镜像
Up重新构建并启动
Down停止并移除容器

Compose 文件示例:

version:'3.8'services:web:image:nginx:alpinecontainer_name:my-websiteports:-"80:80"-"443:443"volumes:-./html:/usr/share/nginx/htmlrestart:unless-stoppedredis:image:redis:7-alpineports:-"6379:6379"volumes:-redis_data:/datarestart:unless-stoppedvolumes:redis_data:

2. 交互式编辑器

Dockge 提供功能完整的 YAML 编辑器:

编辑器特性:

  • 语法高亮
  • 自动补全
  • 错误提示
  • 格式化
  • 代码折叠

快捷操作:

快捷键功能
Ctrl+S保存
Ctrl+Z撤销
Ctrl+F搜索
Tab缩进

3. Web 终端

内置交互式容器终端,无需另开终端:

1. 点击堆栈中的终端图标 2. 选择要进入的容器 3. 直接执行命令

支持的操作:

  • 查看日志(实时)
  • 进入容器内部
  • 执行运维命令
  • 调试问题

4. docker run 转 compose

Dockge 可以将 docker run 命令转换为 compose.yaml:

使用方法:

1. 点击 "Import" 2. 粘贴 docker run 命令 3. 自动生成 compose.yaml 4. 确认后部署

转换示例:

输入: docker run -d --name nginx -p 80:80 -v /data:/usr/share/nginx/html nginx:alpine 输出: services: nginx: image: nginx:alpine container_name: nginx ports: - "80:80" volumes: - /data:/usr/share/nginx/html restart: "no"

5. 多主机管理

Dockge 支持同时管理多台 Docker 服务器:

添加远程主机:

1. 设置 → Agents 2. 点击 "Add Agent" 3. 输入远程服务器信息 4. 复制安装命令到远程服务器执行

使用场景:

  • 管理多台服务器的容器
  • 统一监控所有服务状态
  • 集中部署和运维

6. 实时状态监控

界面实时显示容器状态:

状态指示:

状态颜色说明
Running绿色运行中
Stopped灰色已停止
Error红色错误
Updating蓝色更新中

实时信息:

  • 容器健康状态
  • 资源使用情况
  • 镜像版本
  • 启动时间

实战场景

场景1:快速部署博客系统

使用 Docker Compose 部署 Halo 博客:

version:'3.8'services:halo:image:halohub/halo:2.17container_name:haloports:-"8090:8090"volumes:-./halo:/root/.halo2environment:-HALO_SECURITY_INITIAL_USER_PASSWORD=your-passwordrestart:unless-stoppednetworks:-halo_networkmysql:image:mysql:8.1container_name:halo-mysqlports:-"3306:3306"volumes:-./mysql:/var/lib/mysqlenvironment:-MYSQL_ROOT_PASSWORD=your-mysql-password-MYSQL_DATABASE=halorestart:unless-stoppednetworks:-halo_networknetworks:halo_network:

部署步骤:

1. 在 Dockge 创建新堆栈 "halo-blog" 2. 粘贴上述 compose.yaml 3. 修改密码 4. 点击 Deploy 5. 访问 http://localhost:8090

场景2:搭建 Next.js 应用

version:'3.8'services:nextjs:image:node:20-alpinecontainer_name:nextjs-appworking_dir:/appvolumes:-./app:/app-/app/node_modulesports:-"3000:3000"environment:-NODE_ENV=production-DATABASE_URL=postgres://user:pass@db:5432/myappcommand:sh-c "npm install&&npm run start"depends_on:-dbrestart:unless-stoppeddb:image:postgres:15-alpinecontainer_name:nextjs-dbvolumes:-postgres_data:/var/lib/postgresql/dataenvironment:-POSTGRES_USER=user-POSTGRES_PASSWORD=pass-POSTGRES_DB=myapprestart:unless-stoppedvolumes:postgres_data:

场景3:家庭影院系统

version:'3.8'services:jellyfin:image:jellyfin/jellyfin:latestcontainer_name:jellyfinports:-"8096:8096"-"8920:8920"volumes:-./config:/config-./cache:/cache-./media:/mediaenvironment:-TZ=Asia/Shanghairestart:unless-stoppeddevices:-/dev/dri:/dev/drijackett:image:linuxserver/jackett:latestcontainer_name:jackettports:-"9117:9117"volumes:-./jackett:/config-./jackett/downloads:/downloadsenvironment:-PUID=1000-PGID=1000-TZ=Asia/Shanghairestart:unless-stopped

高级配置

自定义堆栈目录

默认情况下,堆栈存储在/opt/stacks。如需修改:

# 创建目录mkdir-p/your/custom/path# 启动时指定curl"https://dockge.kuma.pet/compose.yaml?stacksPath=/your/custom/path"--outputcompose.yaml# 修改环境变量STACKS_PATH=/your/custom/path

绑定到特定网络

如果 Docker 使用了自定义网络:

services:dockge:image:louislam/dockge:latestcontainer_name:dockgeports:-"5001:5001"volumes:-/var/run/docker.sock:/var/run/docker.sock-/opt/stacks:/opt/stacksnetworks:-my-custom-networkrestart:unless-stoppednetworks:my-custom-network:external:true

常见问题

Q:Dockge 和 Portainer 可以同时使用吗?

A:可以。它们可以共存,各司其职:

  • Dockge:管理 compose 堆栈
  • Portainer:管理单容器、网络等

Q:compose 文件会存储在哪里?

A:Dockge 使用文件结构存储,compose.yaml 保存在你指定的目录(如/opt/stacks)中,可以在文件管理器或用命令行直接操作。

Q:如何迁移已有堆栈到 Dockge?

A:

1. 停止现有堆栈 docker compose down 2. 将 compose 文件移动到堆栈目录 mv docker-compose.yml /opt/stacks/my-stack/compose.yaml 3. 在 Dockge 点击 "Scan Stacks Folder" 4. 堆栈自动识别并显示

Q:支持哪些 Docker 版本?

A:需要 Docker 20+ 或 Podman。

Q:如何更新 Dockge?

A:

cd/opt/dockgedockercompose pull&&dockercompose up-d

适用场景

推荐使用:

  • 使用 Docker Compose 管理多容器应用
  • 需要可视化编辑 compose.yaml
  • 喜欢简洁界面的用户
  • 家庭服务器、NAS 用户
  • 小型开发团队

不推荐使用:

  • 需要管理单容器、网络、卷等
  • 已有成熟 CI/CD 流程
  • 超大规模容器管理

总结

Dockge 用"专注 + 简洁 + 响应式"的理念,为 Docker Compose 管理提供了一个轻量级的解决方案。

核心优势回顾:

  • 专注 Compose:专为 docker-compose 设计
  • 文件自主:compose 文件存储本地,不锁定
  • 界面美观:现代化 UI,响应迅速
  • 操作简便:可视化编辑,一键部署
  • 多主机管理:一界面管理多台服务器
  • 轻量高效:资源占用低,启动快速

对于使用 Docker Compose 的开发者和管理员,Dockge 是一个值得尝试的高效管理工具。


本文由无边界科技技术团队分享,专注软件开发与技术解决方案。

官网:wubianj.com

© 版权归无边界科技所有,版权所有。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/31 10:16:24

微信聊天记录永久归档方案:GitHub_Trending/we/WeChatMsg使用教程

微信聊天记录永久归档方案:GitHub_Trending/we/WeChatMsg使用教程 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trendi…

作者头像 李华
网站建设 2026/7/14 14:54:49

Python 3.11.0rc2下gaps拼图工具安装避坑指南(附完整命令)

Python 3.11.0rc2环境下gaps拼图工具安装全攻略 最近在折腾一个有趣的拼图项目时,发现gaps这个开源工具在Python 3.11.0rc2环境下的安装过程简直是个"雷区"。作为一个踩过所有坑的老手,我决定把这段血泪史整理成指南,帮助后来者避开…

作者头像 李华
网站建设 2026/7/14 14:55:00

避坑指南:CentOS离线安装Maven常见报错解决方案(含SHA校验)

企业级CentOS离线安装Maven全流程避坑手册 在金融、军工等对网络隔离要求严格的行业环境中,开发团队常面临无法直接联网安装工具的困境。上周某银行项目组就遇到这样的场景:内网服务器需要部署Maven构建环境,但安全策略禁止任何外网连接。技术…

作者头像 李华
网站建设 2026/7/14 14:54:59

解锁3大性能维度:从卡顿到流畅的完整优化路径

解锁3大性能维度:从卡顿到流畅的完整优化路径 【免费下载链接】Atlas 🚀 An open and lightweight modification to Windows, designed to optimize performance, privacy and security. 项目地址: https://gitcode.com/GitHub_Trending/atlas1/Atlas …

作者头像 李华
网站建设 2026/7/14 14:55:01

【前端适配】lib-flexible + rem 实现多端响应式布局的进阶实践

1. 为什么需要lib-flexible rem方案 在移动端开发中,最让人头疼的问题就是如何让页面在不同尺寸的设备上都能完美展示。我刚开始做移动端项目时,试过用媒体查询写几十种屏幕适配,结果代码臃肿得像个胖子穿紧身衣。直到遇到淘宝团队开源的lib…

作者头像 李华
网站建设 2026/7/14 14:55:00

PP-DocLayoutV3模型微调教程:适配特定行业文档格式

PP-DocLayoutV3模型微调教程:让AI看懂你的专业文档 你是不是遇到过这种情况?从网上找来的通用版面分析模型,处理自己行业的文档时,总是“水土不服”——该分的栏没分开,表格线识别得歪歪扭扭,标题和正文混…

作者头像 李华