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 |
| Stars | 22636 |
| Forks | 718 |
| 支持平台 | 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方式部署,下面详细介绍安装步骤。
详细安装步骤
创建安装目录
在服务器上创建一个目录用于存放Dockge的配置和数据:
mkdir -p /opt/dockge cd /opt/dockge创建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会自动识别并管理它们。
创建stacks目录
mkdir -p /opt/stacks启动Dockge
在
/opt/dockge目录下执行:docker-compose up -d访问Dockge
打开浏览器,访问
http://你的服务器IP:5001,即可看到Dockge的界面。添加你的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/目录下。
将WordPress的Compose文件放入指定目录:
mkdir -p /opt/stacks/wordpress cd /opt/stacks/wordpress创建
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:- 在Dockge界面中,刷新页面,你应该能看到新出现的“wordpress”堆栈卡片。
示例2:查看和管理堆栈
在Dockge主界面,每个堆栈会显示为一个卡片,包含以下信息:
- 堆栈名称(来自目录名)
- 堆栈中的服务数量
- 整体运行状态(绿色表示所有服务正常运行)
- 每个服务的简短视频(运行中、已停止、错误等)
点击堆栈卡片,可以进入详情页面,在这里你可以:
- 查看日志:点击“Logs”标签,实时查看所有服务的日志输出。日志按服务用不同颜色区分,可以单独筛选某个服务的日志。
- 启动/停止堆栈:点击顶部的“Start”或“Stop”按钮,一键控制整个堆栈。
- 查看资源占用:在“Stats”标签中,可以看到每个服务的CPU和内存使用情况。
- 编辑Compose文件:点击“Edit”按钮,可以直接在浏览器中编辑
docker-compose.yml文件。编辑完成后点击“Update”,Dockge会自动应用更改并重启相关服务。
示例3:调试一个出错的服务
假设你的WordPress服务因为某种原因无法启动。在Dockge中:
- 进入wordpress堆栈详情页面,可以看到WordPress服务的状态显示为红色(错误)。
- 点击“Logs”标签,查看错误日志。假设日志显示“Error establishing a database connection”。
- 检查db服务的日志,发现db容器也在反复重启。
- 点击db服务的“Logs”标签,看到“Access denied for user 'wordpress'@'...'”错误。
- 点击“Edit”按钮,修改Compose文件中的数据库密码配置。
- 点击“Update”,Dockge会自动重启wordpress和db服务。
- 再次查看日志,确认问题已解决,服务恢复正常。
整个过程都在一个界面上完成,无需切换终端或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。
- 确保你的Compose项目目录在
问题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绝对是值得尝试的选择。它将让你的容器编排体验提升到一个全新的水平。
部署之后把Dockge加到了浏览器书签栏,每天打开看一下堆栈状态,有问题的及时处理。再也不用ssh登录去docker ps了。
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.
Dockge让我彻底告别了docker-compose的命令行操作。现在管理容器就像管理桌面软件一样简单,对新手特别友好。
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.
日志筛选功能很实用。有时候只想看某个特定服务的日志,点一下筛选就行。不用像命令行那样grep半天。
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.
用了Dockge之后,我很少再打开终端管理Docker了。启动停止堆栈、查看日志、编辑配置,全在浏览器里完成。工作效率提升明显。
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.
Dockge的作者louislam真是宝藏开发者。Uptime Kuma已经很惊艳了,Dockge同样保持了高质量。UI精致,功能实用,强烈推荐。
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.
编辑Compose文件后自动应用更改这个功能太方便了。以前改了配置还要手动up -d,现在点一下Update就行,省了不少步骤。