统一中文字体回退,日志使用 15px 字号与更宽行距,辅助文字不低于 13px;提高浅色及手机深色模式对比度,样式仅作用于插件内部。公共权限组件更新至 1.0.6,定时 Docker 操作在任务总超时内等待事务锁;不重试已发出的 Docker 命令。
首页设备信息不再等待 Docker 空间统计;空间单独加载、缓存 30 秒,手动刷新绕过缓存。docker info 已包含版本时不再重复查询版本。公共权限组件为 1.0.5,与定时任务、SSH 恢复保持同源兼容;显示缓存位于所属插件 var/docker-space.json,不作为权限或清理依据。
本版修复固件通过 /dev/fd/N 执行 CGI 时的目录定位,避免升级固件后插件打开为空白。
在手机 APP 和电脑客户端中管理 Docker,插件列表名称为“docker”。当前插件版本:1.1.8。
默认镜像列表与首页数量均按 Docker 默认列表去重统计,不包含构建中间镜像。镜像页可勾选“显示构建中间镜像”,查看完整列表及分类数量;重新打开插件时默认关闭。无标签但属于默认列表的镜像仍会显示,不会简单按是否有标签过滤。本次仅调整显示,不删除镜像。公共权限组件更新至 1.0.1,防止旧版定时任务安装包覆盖此改进,接口保持兼容。
统计信息使用共用背景与细分隔线,不再使用独立大卡片;手机按内容显示紧凑单行或两行,电脑优先单行。Docker 统计保留点击跳转,定时任务仅在失败数非零时强调,文件快传在记录页标题旁显示计数。
统一六插件的页头位置、状态卡片、统计信息顺序、圆角、间距和刷新按钮。电脑客户端随窗口使用全部可用宽度,手机页头显示当前插件名称,浅色使用雾灰背景,手机深色使用中性炭灰。样式限定在插件内部,不修改客户端全局字体;保留原有配置和功能。
- 管理容器,查看日志、详情、端口和挂载。
- 更新容器镜像,按原配置重建并在失败时尝试恢复旧容器。
- 启动、停止或重启 Docker 引擎及全部容器。
- 管理镜像、网络和存储卷。
每个插件目录可单独复制和使用,只需要一个操作入口:
manage.sh:包含环境识别、用户选择、安装、卸载、传输和清理逻辑。payload/:安装所需的网页、服务、图标及权限助手。README.md:使用说明;Mihomo 另附第三方许可说明。
旧的 deploy.sh、uninstall.sh、remote-*.sh 及公共辅助脚本已合并到 manage.sh。需要在 NAS 上执行的内部脚本由它临时生成,用完自动清理,不需要另外下载或保留多个入口脚本。
首次使用可以直接打开菜单:
bash manage.sh菜单中选择“安装 / 更新”或“卸载”。命令行和自动化则明确指定 install 或 uninstall。
- NAS 本机:自动识别小米插件配置和
plugincenter,使用 root 直接执行,无需填写 IP。 - WSL / Linux:自动通过 root SSH 连接设备;未填写 IP 时交互询问。支持密钥或交互式密码认证。
- NAS 存储池必须已经正常挂载,目标用户已在小米客户端初始化。
- 非交互运行需要可用的 SSH 密钥;扫描到多个用户时必须明确选择。
- 源码中不保存真实设备地址、账户或订阅信息。下面 IP 和用户 ID 均为示例。
在插件目录内运行:
bash manage.sh install统一执行五步:识别环境 → 扫描用户 → 显示计划并预检查 → 逐用户执行 → 汇总结果。
交互列表显示已安装/未安装状态,可以输入单个序号、逗号分隔的多个序号(如 1,3)或 all。只有一个用户时自动选择。
WSL / Linux 指定 NAS 和多个用户:
bash manage.sh install --ip 192.168.31.100 --users u123456789,u987654321NAS 本机指定多个用户:
bash manage.sh install --users u123456789,u987654321安装给全部符合条件的用户:
# WSL / Linux
bash manage.sh install --ip 192.168.31.100 --all-users
# NAS 本机
bash manage.sh install --all-users兼容原来的位置参数:
bash manage.sh install 192.168.31.100 u123456789
# NAS 本机
bash manage.sh install u123456789重复安装保留现有配置,并更新插件文件。批量执行中某个用户失败时,继续处理后续用户;最后显示成功和失败列表,有失败时返回非零退出码。已成功用户不自动回滚;请解决错误后只重试失败用户。
bash manage.sh uninstall卸载列表只显示已安装该插件的用户,同样支持单选、多选和全部选择。执行前会显示范围并要求输入 yes。
# WSL / Linux,卸载所选用户
bash manage.sh uninstall --ip 192.168.31.100 --users u123456789,u987654321
# NAS 本机,卸载全部已安装用户
bash manage.sh uninstall --all-users自动化卸载必须明确使用 --yes:
bash manage.sh uninstall --ip 192.168.31.100 --users u123456789 --yes卸载前先停止所选用户的插件,并将存在的 etc/、var/、INFO 和插件清单备份到:
/home/<用户>/plugin/.reserve/dockermanager/<时间>-<进程号>/
备份不会自动恢复。重新安装后,如需恢复配置,应先停止插件并按需恢复相关数据;备份可能含密钥,请妥善保管。
保留 Docker 引擎、容器、镜像、网络和存储卷。其他用户仍在使用时,共享图标和权限助手会保留。
# 扫描用户;NAS 本机运行时省略 --ip
bash manage.sh install --ip 192.168.31.100 --list-users
bash manage.sh uninstall --ip 192.168.31.100 --list-users
# 核对计划及用户存储池,不下载、不安装、不卸载
bash manage.sh install --ip 192.168.31.100 --all-users --dry-run
bash manage.sh uninstall --ip 192.168.31.100 --all-users --dry-run
bash manage.sh install --help
bash manage.sh uninstall --helpNAS 需已安装 /data/docker/docker。本插件不另开监听端口;不同用户分别注册页面和权限,操作的是同一 Docker 引擎。卸载某一用户的插件不会停止或删除容器。
只有 Docker Manager 和定时任务的所有用户均已卸载时,才清理公共组件执行文件和 cron。保留受保护的登记/锁目录和备份;Docker 数据目录不在卸载范围内。
与定时任务共用 /data/.minas-privileged/minas-helper(组件 1.x、API v1)。两个安装包各自携带完整公共组件,可按任意顺序独立安装;安装器检查版本、拒绝权限模块降级和不兼容主版本。卸载一个插件不会删除另一个仍需使用的组件。
CGI 通过 sudo -n /data/.minas-privileged/minas-helper dockermanager 发送 JSON 请求。助手按固定接口调用本机 Docker CLI、Unix socket 和固定的 Docker systemd 服务,不开放额外端口,不授予任意 root shell,也不放宽 docker.sock 权限。
两个插件的 Docker 写操作共用全局锁,异步升级和批量操作的整个过程都持有锁;查询与进度轮询仍可使用,冲突写操作返回忙。外部 SSH、其他插件和 Docker 自动重启不受此锁限制。升级/卸载公共组件时拒绝中断正在执行的操作。
授权由 root 登记在 registry.json,sudoers 只允许对应模块入口,不使用参数通配符。Docker 容器创建与宿主机挂载属于接近 root 的高信任能力,仅应安装给可信管理员。同一 NAS 账户的插件共用 UID,授权是该账户的权限并集,不代表插件之间存在强隔离。
公共组件及迁移/移除备份位于 /data/.minas-privileged-backups/<时间>/。组件、父路径和模块必须由 root 所有且普通用户不可写;旧的 /data/plugin/.dockermanager-system/ 不再作为新版本的提权入口。开机注册脚本降权为对应 NAS 用户执行。
手机 Android/iOS 跟随 WebView 提供的系统深浅色信号;Docker 的卡片、输入框、弹窗和按钮均有深色样式。电脑客户端固定使用雾蓝灰。palette.css 同时由 CGI 静态路由提供;更新后请退出插件重进,若宿主不传递主题信号仍需在 APP 侧确认主题设置。
- SSH 连接失败:先确认能执行
ssh root@设备IP。非交互环境不会等待密码输入;连接失败会明确报错,不会被当成“没有用户”。 - 存储池未挂载:先在客户端确认硬盘和存储池恢复正常,再重试。脚本不会在未挂载的空目录里安装。
- 找不到用户:先在小米客户端初始化该用户,再用
--list-users检查;用户必须存在于扫描列表。 - NAS 本机提示需要 root:切换到 root 后运行。不要在本机命令里传设备 IP。
- 缺少文件或命令:使用完整安装包,并根据错误安装或恢复必要依赖。
- 安装后仍显示旧页面:完全关闭并重新打开手机 APP 或电脑客户端中的插件。
- 批量操作部分失败:依据最后的结果列表重试失败用户;错误前可能已写入该用户的部分文件,请保留日志。
- 暂存清理失败:脚本会显示 NAS 上的具体暂存路径;确认没有安装任务使用它后再手动清理。
安装包不包含设备运行配置、订阅凭据、私有账户、日志或安装备份。自动生成的 .cache/、__pycache__/、临时压缩包和 *.tmp 不需要随安装包分发。
在 GitHub 仓库页面选择 Code → Download ZIP,解压后保留项目目录结构,按本页说明运行 manage.sh。也可从 Tags 页面选择指定版本源码。
普通用户可管理的运行状态、缓存保存在本插件主目录 var/,不写入参与原厂摘要校验的 src。root 执行代码、权限登记、任务调度数据库和 SSH 恢复材料保留在受 root 保护的系统位置;当前用户可替换 /home/<用户>/plugin 的父路径,因此不能将这些可信材料直接移入普通用户可改写的目录。公共权限组件为 1.0.6。
容器升级和批量操作状态改为 /home/<用户>/plugin/dockermanager/var/docker-upgrade-status.json 与 docker-bulk-status.json,按账户隔离,以普通用户身份读写;共享 Docker 操作锁仍由 root 管理。状态含本次开机标识,重启后旧的运行中状态会显示中断。
更新安装会保留原有插件启用状态;定时任务也保留原调度开关。运行数据不写入 src,安装更新同步更新 INFO 与用户注册条目,并用原厂 plugin.sh verify 复核。Docker 和控制中心预先建立可写 var,兼容原厂开机后 root:用户的目录权限布局。
确认框、选择器、详情和操作提示限制在插件窗口内;支持窗口缩小、缩放和长文本。运行数据仍位于独立数据目录,安装时更新原厂校验摘要。