
🖥️ 使用 Dockge 可视化管理 Docker Compose 服务
在日常运维中,手动管理多个 docker compose 项目容易混乱。Dockge 提供了一个简洁的 Web 界面,可以集中管理 Compose 文件,支持启动、停止、编辑配置,极大提升效率。本文将介绍如何在服务器上部署 Dockge,并与现有的 Compose 项目(如 LibreSpeed)统一管理。
📂 目录结构规划
建议将 Dockge 单独放在 /opt/docker-stack/dockge/ 下:
代码
/opt/docker-stack/dockge/
├─ compose.yaml
└─ data/
├─ .env
└─ README.md
⚙️ 环境变量配置(data/.env)
env
DOCKGE_PORT=5001
DOCKGE_STACKS_DIR=/opt/docker-stack # Dockge 会扫描这个目录下的所有 compose 项目
🐳 Docker Compose 配置(compose.yaml)
yaml
name: dockge
networks:
web_net: # 与其他服务共用的网络,方便反向代理或互通
external: true # 需提前创建:docker network create web_net
services:
dockge: # service name:推荐在反代或其他容器中引用这个名字
image: louislam/dockge:latest
container_name: dockge # container name:宿主机上唯一标识,便于 docker ps / logs 管理
restart: unless-stopped
env_file:
– ./data/.env
environment:
DOCKGE_STACKS_DIR: ${DOCKGE_STACKS_DIR}
volumes:
– /var/run/docker.sock:/var/run/docker.sock # 必须挂载 Docker socket
– ${DOCKGE_STACKS_DIR}:${DOCKGE_STACKS_DIR} # 挂载 stacks 目录
– ./data:/data
ports:
– “${DOCKGE_PORT}:5001” # 外部访问端口
# – “127.0.0.1:${DOCKGE_PORT}:5001” # 如果只想本机访问,可取消注释
networks:
– web_net
🔑 Service Name vs Container Name
service name (dockge)
在同一个网络中,其他容器(如 Caddy)可以通过 dockge:5001 访问。
推荐在反代配置中使用 service name。
container name (dockge)
宿主机上唯一标识,便于 docker ps、docker logs dockge 管理。
不建议在跨容器访问时使用。
📑 README.md(保存到 data 目录)
markdown
# Dockge 部署文档
## 目录结构
/opt/docker-stack/dockge/ ├─ compose.yaml └─ data/ ├─ .env └─ README.md
代码
## 环境变量 (.env)
– `DOCKGE_PORT`:宿主机映射端口(默认 5001)
– `DOCKGE_STACKS_DIR`:Dockge 扫描的 Compose 项目目录(默认 /opt/docker-stack)
## 网络配置
– 使用自定义网络 `web_net`,需提前创建:
“`bash
docker network create web_net
这样可以与反向代理(Caddy/Nginx)互通,Caddyfile 可直接写:
代码
dockge.example.xyz {
reverse_proxy dockge:5001
}
启动与停止
bash
cd /opt/docker-stack/dockge
docker compose up -d # 启动
docker compose down # 停止并删除容器
docker compose restart # 重启
升级与回滚
升级:
bash
docker compose pull && docker compose up -d
回滚: 修改 compose.yaml 中镜像标签为上一个版本或 digest,然后:
bash
docker compose up -d
验证
浏览器访问 http://服务器IP:5001 → 验证直连
如果有反代(Caddy/Nginx),访问 https://dockge.example.xyz
注意事项
Dockge 必须挂载 /var/run/docker.sock,否则无法管理容器。
DOCKGE_STACKS_DIR 指定的目录必须包含各个服务的 compose.yaml,Dockge 才能识别。
service name 用于容器间互通,推荐在反代配置里使用。
container name 用于宿主机管理,便于查看日志和状态。
代码
—
## 🚀 总结
– Dockge 提供了一个可视化界面,集中管理多个 Docker Compose 项目。
– 通过 `DOCKGE_STACKS_DIR` 指定统一目录(如 `/opt/docker-stack`),即可在 Web 界面中管理所有服务。
– 与反向代理结合(Caddy/Nginx),可以实现统一的 HTTPS 管理。
– 目录结构清晰,迁移时只需打包整个 `/opt/docker-stack/dockge/` 目录即可。
—