跳到正文
零樱钰
返回

用 Dockge 管理 Docker Compose,比手写命令省心很多

很多人开始自部署之后,最先遇到的问题不是“不会写 compose”,而是“项目一多就乱”。
哪个服务放在哪个目录、上次改过什么环境变量、这个容器到底是 docker compose up -d 起的还是以前手工跑的,时间一久很容易忘。Dockge 的价值就在这里:它不替你发明一套新系统,而是把原本就该落盘保存的 compose.yml 做成一个可视化入口。

它适合什么场景

如果你手里已经有几份 compose.yml,又希望在一台或几台主机上统一管理,Dockge 很合适。
它特别适合下面几类用户:

它的核心思路很简单:把所有 stack 放进一个固定目录,比如 /opt/stacks,然后让 Dockge 去读这个目录。

compose 示例

下面这份配置已经足够跑起来:

services:
  dockge:
    image: louislam/dockge:1
    container_name: dockge
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./data:/app/data
      - /opt/stacks:/opt/stacks
    environment:
      - DOCKGE_STACKS_DIR=/opt/stacks

这里最关键的是 /opt/stacks:/opt/stacks。左边和右边必须是同一个绝对路径,不要写成相对路径,否则你以为在管理服务器上的 stack,实际可能写进了容器内部目录。

部署命令

建议单独给 Dockge 建一个目录:

mkdir -p ~/apps/dockge
cd ~/apps/dockge
mkdir -p data
sudo mkdir -p /opt/stacks

把上面的内容保存为 compose.yml 后启动:

docker compose up -d

如果你要通过反向代理暴露它,可以后续再补 ports,例如 5001:5001。先在内网跑通,再做公网入口,排错会轻松很多。

上线后怎么用最顺手

我的建议是每个项目一个目录,例如:

/opt/stacks
├── dockge
├── uptime-kuma
├── open-webui
└── nginx-proxy-manager

这样后续新增服务时,只要在 Dockge 里创建 stack,配置就会直接写入对应目录。你还能顺手把 .env、备份脚本、升级说明都放在同一层,维护起来比散落各处清晰很多。

两个容易踩的坑

第一,不要随便给 Dockge “清理数据目录”。./data 里有它自己的配置和状态。
第二,Docker Socket 具备高权限,说明 Dockge 实际上拥有管理宿主机容器的能力。所以它适合自用或可信团队,不适合随便暴露给陌生人访问。

如果你已经有 3 到 5 个 compose 项目,Dockge 基本属于“早上就该装,别等目录乱了再补”的工具。


分享到:

上一篇
Nginx Proxy Manager 入门:给自部署服务统一配域名和 HTTPS
下一篇
用 Docker 部署 PostgreSQL + pgvector 作为 AI 项目数据库起点