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
Dockge vs Portainer
| 对比项 | Dockge | Portainer |
|---|---|---|
| 定位 | 专注于 Compose | 通用容器管理 |
| 界面 | 现代化简洁 | 功能丰富但复杂 |
| 启动速度 | 快速响应 | 较慢,加载久 |
| 文件管理 | compose 文件本地存储 | 数据库存储 |
| 学习曲线 | 低,上手快 | 中等 |
| 资源占用 | 轻量 | 较重 |
| 多主机 | ✅ 原生支持 | ✅ 支持 |
| 单容器管理 | ❌ 不支持 | ✅ 支持 |
Dockge 的设计理念:
- 用 docker-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
# 启动服务
docker compose up -d
# 访问管理界面
# http://localhost:5001
方式二:自定义配置
# 自定义端口和存储路径
curl "https://dockge.kuma.pet/compose.yaml?port=8080&stacksPath=/home/user/stacks" --output compose.yaml
首次配置
- 访问
http://localhost:5001 - 创建第一个堆栈(Stack)
- 粘贴或编写 docker-compose.yaml
- 点击部署
核心功能详解
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:alpine
container_name: my-website
ports:
- "80:80"
- "443:443"
volumes:
- ./html:/usr/share/nginx/html
restart: unless-stopped
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- redis_data:/data
restart: unless-stopped
volumes:
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.17
container_name: halo
ports:
- "8090:8090"
volumes:
- ./halo:/root/.halo2
environment:
- HALO_SECURITY_INITIAL_USER_PASSWORD=your-password
restart: unless-stopped
networks:
- halo_network
mysql:
image: mysql:8.1
container_name: halo-mysql
ports:
- "3306:3306"
volumes:
- ./mysql:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=your-mysql-password
- MYSQL_DATABASE=halo
restart: unless-stopped
networks:
- halo_network
networks:
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-alpine
container_name: nextjs-app
working_dir: /app
volumes:
- ./app:/app
- /app/node_modules
ports:
- "3000:3000"
environment:
- NODE_ENV=production
- DATABASE_URL=postgres://user:pass@db:5432/myapp
command: sh -c "npm install && npm run start"
depends_on:
- db
restart: unless-stopped
db:
image: postgres:15-alpine
container_name: nextjs-db
volumes:
- postgres_data:/var/lib/postgresql/data
environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD=pass
- POSTGRES_DB=myapp
restart: unless-stopped
volumes:
postgres_data:
场景3:家庭影院系统
version: '3.8'
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
ports:
- "8096:8096"
- "8920:8920"
volumes:
- ./config:/config
- ./cache:/cache
- ./media:/media
environment:
- TZ=Asia/Shanghai
restart: unless-stopped
devices:
- /dev/dri:/dev/dri
jackett:
image: linuxserver/jackett:latest
container_name: jackett
ports:
- "9117:9117"
volumes:
- ./jackett:/config
- ./jackett/downloads:/downloads
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
restart: unless-stopped
高级配置
自定义堆栈目录
默认情况下,堆栈存储在 /opt/stacks。如需修改:
# 创建目录
mkdir -p /your/custom/path
# 启动时指定
curl "https://dockge.kuma.pet/compose.yaml?stacksPath=/your/custom/path" --output compose.yaml
# 修改环境变量
STACKS_PATH=/your/custom/path
绑定到特定网络
如果 Docker 使用了自定义网络:
services:
dockge:
image: louislam/dockge:latest
container_name: dockge
ports:
- "5001:5001"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /opt/stacks:/opt/stacks
networks:
- my-custom-network
restart: unless-stopped
networks:
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/dockge
docker compose pull && docker compose up -d
适用场景
推荐使用:
- 使用 Docker Compose 管理多容器应用
- 需要可视化编辑 compose.yaml
- 喜欢简洁界面的用户
- 家庭服务器、NAS 用户
- 小型开发团队
不推荐使用:
- 需要管理单容器、网络、卷等
- 已有成熟 CI/CD 流程
- 超大规模容器管理
总结
Dockge 用"专注 + 简洁 + 响应式"的理念,为 Docker Compose 管理提供了一个轻量级的解决方案。
核心优势回顾:
- 专注 Compose:专为 docker-compose 设计
- 文件自主:compose 文件存储本地,不锁定
- 界面美观:现代化 UI,响应迅速
- 操作简便:可视化编辑,一键部署
- 多主机管理:一界面管理多台服务器
- 轻量高效:资源占用低,启动快速
对于使用 Docker Compose 的开发者和管理员,Dockge 是一个值得尝试的高效管理工具。
本文由无边界科技技术团队分享,专注软件开发与技术解决方案。
官网:wubianj.com
© 版权归无边界科技所有,版权所有。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)