dockge - Docker Compose堆栈管理工具,用于可视化编排容器化应用

dockge - Docker Compose堆栈管理工具,用于可视化编排容器化应用

如果你使用Docker Compose来管理多个容器应用,你一定有过这样的经历:每当需要查看容器日志时,就要在终端里输入docker-compose logs -f;想要重启某个服务,又得记住服务名称然后敲命令;更不用说编辑docker-compose.yml文件后需要手动执行docker-compose up -d来应用更改。这些重复性的命令行操作虽然不难,但频繁切换终端窗口、记忆各种命令参数,无疑会影响工作效率和开发体验。

Dockge正是为了解决这些问题而诞生的。它是一个优雅、易用、响应迅速的Docker Compose管理工具,专注于以“堆栈”为单位来管理你的容器化应用。通过一个美观的Web界面,你可以像操作桌面软件一样管理你的Docker Compose项目,让容器编排变得更加直观和高效。

项目基本信息

信息项详情
项目名称dockge
GitHub地址https://github.com/louislam/dockge
项目描述A fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager
作者louislam
开源协议MIT License
Stars22636
Forks718
支持平台Linux / Windows / macOS
最后更新2026-03-29

一、项目介绍

Dockge是一个自托管的Docker Compose管理工具,由Uptime Kuma的作者louislam开发。与Portainer这类全能型容器管理平台不同,Dockge专注于做好一件事——管理Docker Compose堆栈。

所谓“堆栈”,就是指由docker-compose.yml文件定义的多个容器的组合。Dockge以堆栈为单位进行管理,让你可以:

  • 在一个统一的界面上查看所有Compose项目的状态
  • 实时查看每个堆栈中所有容器的日志输出
  • 一键启动、停止、重启或删除整个堆栈
  • 在Web界面中直接编辑docker-compose.yml文件
  • 查看容器的资源占用情况(CPU、内存、网络等)

Dockge的设计哲学是“简单而强大”。它不会试图接管你的所有Docker操作,而是专注于Compose这个最常用的场景。对于已经习惯使用Docker Compose管理应用的开发者来说,Dockge提供了一个极佳的补充,让你可以在保持原有工作流的同时,享受可视化操作带来的便利。

二、核心优势

Dockge在众多Docker管理工具中脱颖而出,主要得益于以下特点:

  • 堆栈为中心的管理模式:Dockge将每个docker-compose.yml文件视为一个独立的堆栈,这种设计思路与Compose用户的实际工作方式高度一致。你可以看到每个堆栈包含哪些服务、每个服务的状态、以及整个堆栈的健康状况。
  • 实时日志流:Dockge提供了类似tail -f的实时日志查看功能,而且可以同时查看一个堆栈中所有服务的日志,并以不同颜色区分不同的服务。这对于调试多容器应用来说非常实用。
  • 内联编辑器:无需离开浏览器,直接在Web界面中编辑docker-compose.yml文件。编辑器支持语法高亮和基本的代码补全,编辑完成后点击“更新”按钮,Dockge会自动应用更改并重启相关容器。
  • 美观的界面设计:Dockge的界面设计精致而现代,深色主题默认开启,操作反馈流畅。每个堆栈都以卡片形式展示,状态一目了然(运行中、已停止、错误等)。
  • 轻量级部署:Dockge本身也以Docker Compose方式部署,只需一个docker-compose.yml文件和一个.env文件就能运行起来。它占用资源极少(通常几十MB内存),不会对服务器造成负担。
  • 与现有项目兼容:Dockge不会干涉你现有的Compose文件结构。你只需要在Dockge中指定Compose文件所在的目录,它就能自动识别并管理这些堆栈。这意味着你可以随时切换回命令行操作,不会产生任何依赖。

三、适用场景

Dockge特别适合以下使用场景:

  • 个人服务器运维:如果你在自己的VPS或家庭服务器上运行着多个Docker应用(如WordPress、Nextcloud、Jellyfin等),Dockge可以帮你集中管理这些应用,查看日志、重启服务都变得无比简单。
  • 开发测试环境管理:在开发过程中,你可能需要频繁启动、停止不同的服务组合进行测试。Dockge的堆栈管理功能让你可以一键切换环境状态,而无需记忆复杂的命令。
  • Docker初学者学习:对于刚接触Docker Compose的新手,Dockge提供了一个可视化的学习环境。你可以通过界面操作来理解Compose的工作原理,实时看到修改配置文件后的效果。
  • 团队协作场景:当团队成员需要共享Docker环境时,Dockge可以作为统一的操作入口。非技术背景的同事也可以通过界面完成基本的容器管理操作,减轻开发者的支持负担。
  • 多项目切换:如果你同时维护多个项目,每个项目都有自己的一套Compose配置,Dockge可以让你在这些项目之间快速切换,而不会混淆不同项目的服务。

四、安装教程

系统要求

工具用途下载/安装方式
Docker容器运行环境[https://docs.docker.com/get-docker/]
Docker Compose编排工具Docker Desktop自带,或单独安装

Dockge的安装非常简单,只需要准备好Docker和Docker Compose环境即可。官方推荐使用Docker Compose方式部署,下面详细介绍安装步骤。

详细安装步骤

  1. 创建安装目录

    在服务器上创建一个目录用于存放Dockge的配置和数据:

    mkdir -p /opt/dockge
    cd /opt/dockge
  2. 创建docker-compose.yml文件

    使用编辑器创建docker-compose.yml文件,内容如下:

    version: "3.8"
    
    services:
      dockge:
        image: louislam/dockge:latest
        restart: unless-stopped
        ports:
          - 5001:5001
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
          - ./data:/app/data
          - /opt/stacks:/opt/stacks
        environment:
          - DOCKGE_STACKS_DIR=/opt/stacks

    关键配置说明:

    • ports:将宿主机的5001端口映射到容器的5001端口,这是Dockge的Web访问端口。
    • /var/run/docker.sock:挂载Docker套接字,让Dockge能够与Docker守护进程通信。
    • ./data:用于存储Dockge自身的配置数据。
    • /opt/stacks:存放你的Compose项目文件的目录,这是最关键的配置。你需要将所有Compose项目放在这个目录下,Dockge会自动识别并管理它们。
  3. 创建stacks目录

    mkdir -p /opt/stacks
  4. 启动Dockge

    /opt/dockge目录下执行:

    docker-compose up -d
  5. 访问Dockge

    打开浏览器,访问 http://你的服务器IP:5001,即可看到Dockge的界面。

  6. 添加你的Compose项目

    Dockge启动后,会自动扫描/opt/stacks目录下的子目录。每个子目录应该包含一个docker-compose.yml文件。例如:

    /opt/stacks/
    ├── wordpress/
    │   └── docker-compose.yml
    ├── nextcloud/
    │   └── docker-compose.yml
    └── portainer/
        └── docker-compose.yml

    如果你的Compose项目已经存放在其他位置,可以通过软链接的方式指向它们,或者修改docker-compose.yml中挂载的目录路径。

使用Docker run方式安装(可选)

如果你更喜欢使用docker run命令,也可以这样安装:

docker run -d \
  --name dockge \
  --restart unless-stopped \
  -p 5001:5001 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /opt/dockge/data:/app/data \
  -v /opt/stacks:/opt/stacks \
  -e DOCKGE_STACKS_DIR=/opt/stacks \
  louislam/dockge:latest

五、使用示例

下面通过几个实际操作示例,展示Dockge的日常使用流程。

示例1:添加一个Compose项目

假设你有一个WordPress项目,其docker-compose.yml文件位于/opt/stacks/wordpress/目录下。

  1. 将WordPress的Compose文件放入指定目录:

    mkdir -p /opt/stacks/wordpress
    cd /opt/stacks/wordpress
  2. 创建docker-compose.yml文件,内容示例:

    version: '3.8'
    
    services:
      db:
        image: mysql:8.0
        container_name: wordpress_db
        restart: unless-stopped
        environment:
          MYSQL_ROOT_PASSWORD: rootpassword
          MYSQL_DATABASE: wordpress
          MYSQL_USER: wordpress
          MYSQL_PASSWORD: wp_password
        volumes:
          - db_data:/var/lib/mysql
    
      wordpress:
        image: wordpress:latest
        container_name: wordpress_app
        restart: unless-stopped
        ports:
          - "8080:80"
        environment:
          WORDPRESS_DB_HOST: db:3306
          WORDPRESS_DB_USER: wordpress
          WORDPRESS_DB_PASSWORD: wp_password
          WORDPRESS_DB_NAME: wordpress
        volumes:
          - wp_data:/var/www/html
        depends_on:
          - db
    
    volumes:
      db_data:
      wp_data:
  3. 在Dockge界面中,刷新页面,你应该能看到新出现的“wordpress”堆栈卡片。

示例2:查看和管理堆栈

在Dockge主界面,每个堆栈会显示为一个卡片,包含以下信息:

  • 堆栈名称(来自目录名)
  • 堆栈中的服务数量
  • 整体运行状态(绿色表示所有服务正常运行)
  • 每个服务的简短视频(运行中、已停止、错误等)

点击堆栈卡片,可以进入详情页面,在这里你可以:

  • 查看日志:点击“Logs”标签,实时查看所有服务的日志输出。日志按服务用不同颜色区分,可以单独筛选某个服务的日志。
  • 启动/停止堆栈:点击顶部的“Start”或“Stop”按钮,一键控制整个堆栈。
  • 查看资源占用:在“Stats”标签中,可以看到每个服务的CPU和内存使用情况。
  • 编辑Compose文件:点击“Edit”按钮,可以直接在浏览器中编辑docker-compose.yml文件。编辑完成后点击“Update”,Dockge会自动应用更改并重启相关服务。

示例3:调试一个出错的服务

假设你的WordPress服务因为某种原因无法启动。在Dockge中:

  1. 进入wordpress堆栈详情页面,可以看到WordPress服务的状态显示为红色(错误)。
  2. 点击“Logs”标签,查看错误日志。假设日志显示“Error establishing a database connection”。
  3. 检查db服务的日志,发现db容器也在反复重启。
  4. 点击db服务的“Logs”标签,看到“Access denied for user 'wordpress'@'...'”错误。
  5. 点击“Edit”按钮,修改Compose文件中的数据库密码配置。
  6. 点击“Update”,Dockge会自动重启wordpress和db服务。
  7. 再次查看日志,确认问题已解决,服务恢复正常。

整个过程都在一个界面上完成,无需切换终端或SSH会话。

示例4:管理多个堆栈

假设你有多个Compose项目:

  • /opt/stacks/wordpress/ - 博客系统
  • /opt/stacks/nextcloud/ - 云存储
  • /opt/stacks/jellyfin/ - 媒体服务器
  • /opt/stacks/monitoring/ - 监控系统

在Dockge主界面,你可以看到所有堆栈的概览。如果某个堆栈出现问题,卡片会显示红色状态,让你快速定位。你可以单独管理每个堆栈,也可以批量操作。

六、常见问题

  • 问题1:Dockge无法识别我的Compose项目

    请检查以下几点:

    • 确保你的Compose项目目录在/opt/stacks(或你挂载的其他目录)的子目录下,每个子目录包含一个docker-compose.yml文件。
    • 检查目录权限,确保Dockge容器能够读取这些文件。
    • 刷新Dockge页面或重启Dockge容器:docker-compose restart dockge
  • 问题2:编辑Compose文件后应用更改失败

    如果点击“Update”后服务没有正确重启,可能的原因:

    • Compose文件有语法错误,请检查YAML格式是否正确。
    • 检查Dockge的日志:docker-compose logs dockge,查看是否有详细错误信息。
    • 如果服务名称发生变化,可能需要先手动停止旧服务。
  • 问题3:无法访问Dockge界面

    检查以下设置:

    • 确认防火墙开放了5001端口。
    • 如果使用云服务器,检查安全组规则是否允许入站5001端口。
    • 尝试在服务器上执行curl http://localhost:5001,确认服务本身正常运行。
    • 查看容器状态:docker-compose ps,确保容器状态为“Up”。
  • 问题4:Dockge如何与现有的Compose项目兼容

    Dockge不会修改你的Compose文件,也不会接管容器管理。你完全可以继续使用命令行操作,Dockge只是读取状态并显示。这种设计确保了你可以随时切换回命令行,不会产生任何依赖。

  • 问题5:如何备份Dockge的配置

    Dockge的配置存储在./data目录中,备份这个目录即可。同时,你的Compose项目文件(/opt/stacks)也需要备份。

  • 问题6:Dockge支持Docker Swarm或Kubernetes吗

    目前Dockge专注于Docker Compose,不支持Swarm或Kubernetes。如果需要管理Swarm或K8s,建议使用Portainer等更全面的工具。

七、总结

Dockge是一款专注于Docker Compose管理的优秀工具,它完美诠释了“小而美”的产品理念。它没有试图面面俱到,而是把Compose管理这件事做到了极致。

对于经常使用Docker Compose的开发者来说,Dockge能带来显著的效率提升。你不再需要在多个终端窗口之间切换,不再需要记忆各种docker-compose命令,所有操作都可以在美观的Web界面中完成。实时日志查看、内联编辑器、一键启停这些功能,都让容器管理变得更加轻松。

Dockge的安装和使用都非常简单,学习成本几乎为零。即使你之前完全没有接触过Docker管理工具,也能在几分钟内上手。而它轻量级的特性,也让它非常适合部署在资源受限的服务器上。

如果你正在寻找一个简单、优雅、专注的Docker Compose管理工具,Dockge绝对是值得尝试的选择。它将让你的容器编排体验提升到一个全新的水平。

已有 4148 条评论

    1. JamesTaylor JamesTaylor

      The stats view is very useful. I can see CPU and memory usage per service without running docker stats. Helps me identify which containers are consuming too many resources.

    2. 刘欣然 刘欣然

      对于我这种有十几个Compose项目的人来说,Dockge简直是救星。所有项目一目了然,再也不用一个个cd到目录去执行docker-compose命令了。

    3. DavidKim DavidKim

      I'm impressed by how responsive the UI is. Logs stream in real-time with almost no delay. Feels like using tail -f but with a much nicer presentation.

    4. 王大锤 王大锤

      之前用Portainer管理Compose,总觉得有点重。Dockge刚刚好,专注于Compose,界面清爽,资源占用也小。在树莓派上跑得很流畅。

    5. EmmaWilson EmmaWilson

      The card-based UI is very intuitive. Each stack shows its status at a glance. When something breaks, the red indicator immediately catches my attention. Perfect for monitoring multiple projects.

    6. 赵明远 赵明远

      2.2万星标说明这个工具确实好用。实时日志查看功能特别赞,不同服务的日志用不同颜色区分,一眼就能看出哪个服务出问题了。

    7. MichaelBrown MichaelBrown

      I love how it groups containers by stack. When I have multiple services for one app, I can see them all together. The color-coded logs per service make debugging so much easier.

    8. 李浩然 李浩然

      安装真的太简单了,一个docker-compose.yml文件就搞定了。把现有的Compose项目放到stacks目录下,Dockge自动识别,完美兼容现有环境。

    9. SarahLin SarahLin

      The inline editor is a game changer. I used to edit docker-compose.yml with vim over SSH, now I can do it right in the browser with syntax highlighting. Click update and it restarts automatically.

    10. 陈思远 陈思远

      作为Uptime Kuma的用户,看到作者出了新作品立马来试了。界面风格一脉相承,简洁好看。专注于Compose管理的思路很对,不需要Portainer那么复杂的功能。

    11. KevinZhang KevinZhang

      Dockge真的太实用了!之前管理docker-compose项目,每次要看日志都得ssh进去敲命令,现在打开浏览器就能看到所有堆栈状态,还能实时查看日志,效率提升太多了。