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. 郑子轩 郑子轩

      部署之后把Dockge加到了浏览器书签栏,每天打开看一下堆栈状态,有问题的及时处理。再也不用ssh登录去docker ps了。

    2. EricWang EricWang

      This tool fills a specific niche perfectly. Not everyone needs full container orchestration. Sometimes you just want a nice UI for your docker-compose stacks. Dockge delivers exactly that.

    3. 黄嘉欣 黄嘉欣

      Dockge让我彻底告别了docker-compose的命令行操作。现在管理容器就像管理桌面软件一样简单,对新手特别友好。

    4. NatalieClark NatalieClark

      The update mechanism is very clever. When I edit the compose file, it does a diff and only restarts the services that changed. Smart and efficient.

    5. 张浩然 张浩然

      日志筛选功能很实用。有时候只想看某个特定服务的日志,点一下筛选就行。不用像命令行那样grep半天。

    6. AndrewRobinson AndrewRobinson

      I deployed Dockge on my home server to manage all my self-hosted apps. It's perfect for this use case. Jellyfin, Nextcloud, Transmission - all in one place.

    7. 林晓彤 林晓彤

      用了Dockge之后,我很少再打开终端管理Docker了。启动停止堆栈、查看日志、编辑配置,全在浏览器里完成。工作效率提升明显。

    8. ChrisEvans ChrisEvans

      The ability to view logs from all services in a stack simultaneously is brilliant. When debugging a multi-container app, I don't have to open multiple terminal windows anymore.

    9. 吴子涵 吴子涵

      Dockge的作者louislam真是宝藏开发者。Uptime Kuma已经很惊艳了,Dockge同样保持了高质量。UI精致,功能实用,强烈推荐。

    10. SophiaMartinez SophiaMartinez

      I appreciate that it doesn't lock me in. I can still use the command line if I want to, Dockge just reads the existing compose files. Great design choice.

    11. 周宇航 周宇航

      编辑Compose文件后自动应用更改这个功能太方便了。以前改了配置还要手动up -d,现在点一下Update就行,省了不少步骤。