前言

Docker Compose用久以后,真正麻烦的往往不是docker compose up -d这条命令记不住,而是项目越来越多:这个服务放在一个目录,另一个服务又有自己的.env,想改配置、更新镜像或者看运行状态时,总要先找到对应的Compose文件。

Dockge提供了一种更直观的管理方式。它本身并不替代Docker Compose,而是在Compose之上增加一个Web界面,可以集中查看和管理不同Stack,编辑compose.yaml、执行启动停止和镜像更新,同时原来的Compose文件仍然保存在磁盘中,也可以继续使用正常的Docker Compose命令操作。

本文会在飞牛NAS中部署Dockge 1.5.0,把Web界面映射到7001端口,再尝试把原来已经存在的Compose项目纳入Dockge管理。当前1.5.0仍是Dockge官方最新正式版本,而且出于安全考虑,这个版本已经默认关闭高风险Console功能,因此本文没有必要额外打开它。

迁移已有项目时需要特别注意路径。Dockge官方要求Stacks目录在宿主机和容器内部使用相同的绝对路径;另外,如果原Compose中存在./data./config这类相对Bind Mount,直接把Compose目录复制到新的Stacks位置以后,数据源路径也可能随之改变,正式接管以前应先检查解析后的Compose配置。

最后还会通过cpolar为Dockge建立远程访问入口。由于Dockge直接连接Docker Socket,实际上拥有很高的Docker主机管理权限,因此它应该被当作运维控制台来保护:公网访问时优先使用HTTPS、独立强密码和受控访问,而不能把公网地址本身当成认证措施。

image-20260609173019866

1.什么是Dockge?

Dockge 是一款开源、轻量级的 Docker Compose 可视化管理工具(Web UI),旨在让你通过图形界面轻松创建、编辑、部署和管理 Docker Compose 项目(也称为 “stacks”),而无需频繁使用命令行。

核心功能

可视化 Stack 管理

  • 在浏览器中以卡片或列表形式查看所有 Compose 项目(stacks);
  • 一键启动、停止、重启、更新或删除服务。

在线 YAML 编辑器

  • 内置语法高亮和自动缩进的编辑器,直接在网页上编写或修改 docker-compose.yml;
  • 支持实时校验,减少格式错误。

一键部署与更新

  • 保存配置后可直接部署(等效于 docker-compose up -d);
  • 修改后点击“更新”,自动拉取新镜像并重建容器。

容器日志查看

  • 点击服务即可实时查看对应容器的日志,方便调试。

支持环境变量与多文件

  • 可配合 .env 文件使用;
  • 支持多 Compose 文件组合(如 docker-compose.yml + override.yml)。

安全与权限

  • 支持通过反向代理(如 Nginx)配置 HTTPS 和基础认证;
  • 默认仅监听本地或内网,适合家庭服务器或开发环境。

技术特点

  • 自包含:Dockge 本身就是一个 Docker 容器,部署简单;
  • 无数据库依赖:所有配置直接保存为本地 docker-compose.yml 文件,符合 GitOps 理念;
  • 开源免费:项目托管在 GitHub(https://github.com/louislam/dockge),由 Uptime Kuma 同一作者开发,社区活跃。

适用场景

  • 家庭实验室(Home Lab)用户希望用图形界面管理多个服务(如 Plex、Jellyfin、Watchtower);
  • 开发者快速搭建测试环境,避免记忆复杂命令;
  • 运维人员需要更直观地维护小型 Docker 集群;
  • 初学者学习 Docker Compose 的友好入口。

如果你厌倦了在终端里反复输入docker-compose命令,Dockge正是你需要的现代化替代方案。

2.安装前提条件

2.1ssh远程连接到飞牛

  • 开启【SSH 服务】
  • 使用终端(Windows PowerShell / Mac Terminal)登录:

在设置—>SSH中开启SSH服务:

463c5f2aa280d7887420494b8b8f852e

27abe7f94baeaebc1738b60b1ba78933

e16c7480a399e50f627439329422c5a7

2.2验证docker是否开启

使用命令:

docker -v 
systemctl status -v

也可以直接在飞牛主页查看(其他机器也是这样的哦~)

bc2a0952beed8ca143a171bb000b2b23

3.安装Dockge

执行以下命令,拉取Dockge镜像louislam/dockge:1.5.0

docker pull louislam/dockge:1.5.0

ccf8fc13a1ef8d89aec39ab2495b1930

首先创建一下安装的目录并进入到该目录:

mkdir -p /docker/dockge
cd /docker/dockge

创建并编辑 docker-compose.yml文件:

vi docker-compose.yml
services:
  dockge:
    image: louislam/dockge:1.5.0
    restart: unless-stopped
    ports:
      - 7001:5001
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /data/dockge/data:/app/data

      - /data/dockge/stacks:/opt/stacks
    environment:

      - DOCKGE_STACKS_DIR=/opt/stacks

3481637d57dd3c7f5aeb109a6ab0497f

启动容器:

docker compose up -d

查看Dockge容器状态:

docker ps

25a54a909504c35a477697de59143212

部署完成后,在浏览器中输入 http://飞牛IP:7001 就能看到Dockge的界面:

cd6e50d38a57983cb16a998b3599e8d2

4.使用Dockge

4.1 基础

初次登录,记得设置好账号密码:

514b9cfe683166cd823328b4299d8a39

登录进来后,即可看飞牛当前的docker项目:

3dc3687231e930c4a1b60e1a5f5a0b0b

4.2 管理现有容器项目

例如,本地有部署exer项目。我们将该部署目录下的所有文件复制到/data/dockge/stacks/exer目录,包括docker-compose.yaml文件.env环境变量文件。

  • /docker/exer为原目录
cp -a  /docker/vaultwarden/ /data/dockge/stacks/vaultwarden/
cp -a  /docker/exer /data/dockge/stacks/exer/

image-20260609172616604

来到dockge界面,点击右上角的账号图标,选择“扫描堆栈文件夹”。

image-20260609172250945

即可发现容器管理成功!

image-20260609172605128

点击重启:

image-20260609172927856

Dockge 为 Docker Compose 提供了直观高效的可视化管理界面,而通过与 cpolar 深度结合,更能释放其远程运维潜力——借助 cpolar 的内网穿透能力,即使 Dockge 部署在本地服务器或家庭 NAS 中,也能安全、稳定地通过公网地址随时随地访问和管理容器服务。无需复杂网络配置或暴露路由器端口,cpolar 一键生成 HTTPS 隧道,让 Dockge 真正实现“ anywhere, anytime”的远程容器管控,极大提升了私有化部署的灵活性与可及性。

5.安装cpolar实现随时随地开发

5.1 什么是cpolar?

cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。

5.2 部署cpolar

cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。

❤️以下是安装cpolar步骤:

使用一键脚本安装命令:

sudo curl https://get.cpolar.sh | sh

image-20250725104019896

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

22e5adfaf290a17fc3384bb296055259

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

8a6698b1bf26d64ba3645827fbfb1c29

6.配置公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了:dockge,注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:7001
  • 域名类型:随机域名
  • 地区:选择China Top

image-20260609173327284

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

image-20260609173340036

访问成功。

image-20260609173356432

7.保留固定公网地址

使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

image-20250918151358733

点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是dockge,大家可以自定义。填写备注信息,点击保留。

image-20260609173438037

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20260609173500942

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

image-20260609173533716

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20260609173550234

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

image-20260609173614724

总结

完成以上配置后,Dockge已经运行在飞牛NAS中,并可以通过浏览器集中管理Docker Compose Stack。

Dockge真正方便的地方,不是把Docker Compose藏起来,而是让Compose文件继续留在磁盘上的同时,多了一套可视化操作入口。创建、编辑、启动、停止和镜像更新可以在网页中完成,需要排查问题时依然可以回到原来的compose.yaml和Docker Compose命令,因此原有运维习惯不需要全部推翻。

对于已经运行的Compose项目,迁移时反而要比新建Stack更加谨慎。Dockge官方要求Stacks目录在宿主机和容器内保持相同绝对路径;如果项目使用./data./config或相对env_file,移动Compose文件所在目录还可能改变这些路径的实际指向。正式让Dockge重新创建容器以前,建议先检查最终配置并为重要数据建立备份。

Dockge自身的/app/data也需要持久化,其中包含账号等应用状态;Stacks目录则保存实际Compose项目文件。这两部分都值得纳入备份范围,但Compose文件持久化并不等于其中运行的数据库和应用数据已经完成独立备份。

通过cpolar为7001端口建立公网入口后,还可以从其他网络进入Dockge。不过Dockge挂载了Docker Socket,管理权限远高于普通网页服务,账号被攻破可能进一步影响整台Docker宿主机。因此长期远程使用时,应保护好Dockge账号、优先使用HTTPS,并避免开放不需要的高风险功能。

如果需要长期保持同一个管理入口,可以根据实际套餐配置固定公网地址,在账号、套餐以及对应隧道配置保持有效期间维持URL一致。固定地址解决的是管理入口变化问题,并不能替代Dockge认证、Docker主机安全和重要Stack的数据备份。

从飞牛NAS部署、Compose Stack集中管理,到远程访问,本文完成的是一套Dockge可视化管理Docker Compose的基础实践流程。

更多推荐