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

3 阅读7分钟

title: "" date: 2026-03-15 tags: ["Dockge", "Docker", "开源工具", "容器管理", "Portainer替代"] category: "工具教程" keywords: ["Dockge教程", "Docker Compose管理", "开源容器工具", "可视化Docker", "Portainer替代"] description: "。"

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 地址: github.com/louislam/do…

官网: dockge.kuma.pet

Dockge vs Portainer

对比项DockgePortainer
定位专注于 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

首次配置

  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: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

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