收起左侧

【技术攻略】DockerTools WebUI 版:在浏览器里一键导出 Docker Compose

2
回复
109
查看
[ 复制链接 ]

6

主题

49

回帖

0

牛值

初出茅庐

fnOS1.0上线纪念勋章

【技术攻略】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 界面

docker-export-webui.png


🚀 如何部署(推荐:直接用 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
    • 服务端口(默认 3080
  • DOCKER_EXPORT_AUTH_USER
    • 登录账号(默认 admin
  • 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
收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

6

主题

49

回帖

0

牛值

初出茅庐

fnOS1.0上线纪念勋章

1 小时前 楼主 显示全部楼层

占座留做更新

6

主题

49

回帖

0

牛值

初出茅庐

fnOS1.0上线纪念勋章

1 小时前 楼主 显示全部楼层

本来想加个定时任务的但是感觉没有必要,需求可能不是那么大,有需求的可以把sh 脚本直接放到别的定时任务管理器进行统一管理,这个项目主要还是为了导出没有使用 docker-compose 部署的项目,方便自己重建调整。
ps: 推荐使用 docker-compose 进行部署容器,不然迁移的时候太麻烦了

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则