【技术攻略】DockerTools WebUI 版:在浏览器里一键导出 Docker Compose
📌 项目简介
我在 DockerTools(容器配置导出工具) 的基础上,新增了一个 WebUI 版本:把“导出能力”封装成一个 Web 页面 + 后端服务,方便在 NAS/服务器上通过浏览器一键操作、查看日志。
- GitHub:
https://github.com/MG5921MY/docker-tools-public.git
- WebUI 文档入口:https://github.com/MG5921MY/docker-tools-public/blob/master/export/docker/README-docker.md
- 原版本 sh 脚本:【技术攻略】DockerTools - Docker 容器配置导出工具
https://club.fnnas.com/forum.php?mod=viewthread&tid=42217
(出处: 飞牛私有云论坛 fnOS)
本工具主要面向“未使用 docker-compose 管理/部署”的存量容器:将正在运行的容器配置尽可能还原并导出为 docker-compose.yml,以便你后续快速迁移、重建与版本化管理。
需要强调的是:由于不同容器镜像/启动方式/运行时状态差异很大,本工具无法保证 100% 的可用性与安全性。它的定位是减少手工整理参数的工作量,降低备份、迁移、重建的操作门槛;在正式环境使用前,请务必在测试环境验证导出的配置。
另外,本工具不提供持久化数据备份能力:早期曾尝试支持,但实践中发现部分容器可能使用相对路径或复杂挂载方式,容易导致备份结果不可靠;同时数据量不可控也可能引发磁盘占满等安全风险,因此最终移除了该功能。持久化数据请根据实际卷挂载路径自行备份与校验。
🆕 相比脚本版新增了什么?
- WebUI 页面:浏览器访问即可使用
- 后端服务:提供 HTTP API,负责调度导出脚本并返回执行状态/日志
- 登录认证:默认开启账号密码登录(可在 WebUI 内修改密码)
- 可选 MFA(TOTP):支持在 WebUI 内手动开启双因素认证
- 数据持久化目录:用于保存认证/安全策略配置(避免重建容器丢失登录状态)
- 一键容器化部署:提供 Docker 镜像部署方案(适合工具机/运维机)
✨ 主要功能
- 在浏览器触发导出:无需 SSH 上机敲命令
- 实时查看执行日志:方便排查失败原因
- 账号密码登录保护:避免内网暴露后被随意访问
- 可选 MFA(TOTP):提升访问安全性
✨WebUI 界面

🚀 如何部署(推荐:直接用 GHCR 镜像)
注意:Docker 镜像引用要求仓库名必须小写
MG5921MY 要写成 mg5921my,否则会报:repository name must be lowercase
方式 A:docker compose(最适合新手)
在任意 Linux/WSL/Docker Desktop(Linux 容器模式)的机器上:
1)创建目录并进入:
mkdir -p docker-export-webui && cd docker-export-webui
2)创建 docker-compose.yml(直接复制下面这份):
services:
docker-export-webui:
image: ghcr.io/mg5921my/docker-tools-public:latest
container_name: docker-export-webui
ports:
- "3080:3080"
environment:
DOCKER_EXPORT_AUTH_USER: "admin"
DOCKER_EXPORT_AUTH_PASSWORD: "change-me"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./output:/app/output
- ./data:/app/data
restart: unless-stopped
3)启动:
docker compose up -d
4)访问:
- 打开浏览器:
http://localhost:3080
- 首次使用请立刻修改默认密码(或至少改掉
change-me)
更新到最新镜像(可选):
docker compose pull
docker compose up -d
方式 B:docker run(单条命令快速部署)
docker run -d \
--name docker-export-webui \
-p 3080:3080 \
-e DOCKER_EXPORT_AUTH_USER=admin \
-e DOCKER_EXPORT_AUTH_PASSWORD=change-me \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(pwd)/output:/app/output \
-v $(pwd)/data:/app/data \
--restart unless-stopped \
ghcr.io/mg5921my/docker-tools-public:latest
🔧 常用参数
PORT
DOCKER_EXPORT_AUTH_USER
DOCKER_EXPORT_AUTH_PASSWORD
DOCKER_EXPORT_DATA_DIR
- 服务数据目录(默认
/app/data)
- 推荐挂载
./data:/app/data 用于持久化认证信息
必须挂载:
/var/run/docker.sock:/var/run/docker.sock
- 这是 WebUI 能读取宿主机 Docker 并导出的关键
⚠️ 免责声明
- 高权限风险:挂载
docker.sock 等同于把宿主机 Docker 的控制权交给容器
- 只建议在 受信任环境/内网/个人服务器 使用
- 不建议直接暴露到公网(即使有登录也不推荐)
- 默认密码风险:请务必修改默认密码,避免被内网扫描直接进入
- 数据备份责任:本工具只负责导出“容器配置”,不包含数据卷/数据库文件等持久化数据备份
- 使用前请阅读:
https://github.com/MG5921MY/docker-tools-public/blob/master/DATA_BACKUP_NOTICE.md
- 使用责任:工具“按原样”提供,使用风险由用户自行承担
- 详见:
https://github.com/MG5921MY/docker-tools-public/blob/master/DISCLAIMER.md
📚 进一步阅读
- WebUI 完整部署说明:https://github.com/MG5921MY/docker-tools-public/blob/master/export/docker/README-docker.md
- 项目总览与文档索引:
https://github.com/MG5921MY/docker-tools-public/blob/master/README.md