谁也没想到,一次平平无奇的 Docker Compose 更新操作,直接让我在群晖 DSM 7.3 上稳定运行了很久的 qBittorrent 彻底瘫痪。

当时我的 NAS 还在正常跑着各类下载任务,全程运行平稳、没有任何异常。我只是随手执行了一遍 docker compose up -d 指令,本意是常规更新服务,没成想这个常规操作,直接触发 Docker 重新创建了 qBittorrent 容器,意外就此发生。

故障刚出现的时候,症状特别温和:仅仅是 qBittorrent 的 WebUI 打不开了。我当时完全没放在心上,只当是容器重启的短暂卡顿,想着静置几分钟就能自动恢复正常。

可等了许久依旧无法访问,我点开容器日志排查,瞬间发现不对劲。

日志页面里,LinuxServer.io 的启动横幅在无限刷屏,容器彻底陷入了启动死循环,反反复复卡在同一个流程里,始终无法正常就绪:

  • 一遍遍重复执行容器初始化流程

  • 持续进行配置文件迁移检测

  • 从头到尾都无法成功拉起 qBittorrent 主程序进程

更让人头疼的是,我打开容器挂载的配置目录后,发现里面多出了一堆乱七八糟的异常残留文件。

正是这些遗留的缓存和特殊文件,死死卡住了容器的启动流程,让它陷入「初始化—检测—失败—重启」的无限死循环里。

这篇文章,我就完整复盘这次真实的翻车经历,全程零数据丢失,保住所有种子任务、下载进度和历史记录,详细拆解本次故障的全部细节与解决方案:

  • 群晖 DSM 7.3 环境下,qBittorrent 容器重建后的完整故障现象与核心特征

  • LinuxServer.io 官方镜像的初始化、配置迁移机制,暗藏的隐性bug与兼容问题

  • Docker Compose 重建容器时,绝大多数人都会忽略的高危坑点

  • 无损恢复 qBittorrent 服务的完整实操方案,不丢种子、不丢下载记录

如果你也是用群晖 NAS + Docker 部署 qBittorrent,一定要看完。这不是小众故障,只是大概率你还没遇到,这套排查和修复方法,迟早能帮你避开或者解决同款突发翻车问题。

故障复现

问题现象

  • 飞牛NAS / 群晖 DSM 7.3 上使用 Docker 部署 qBittorrent 后,在下载资源期间误执行(或直接更新qBittorrent容器):

    docker compose up -d
  • 导致容器被重新创建,之后 qBittorrent 无法正常启动。

  • 查看日志

    docker logs -f qbittorrent
  • 输出内容如下:

    [migrations] started
    [migrations] no migrations found
    usermod: no changes
    ───────────────────────────────────────
    
          ██╗     ███████╗██╗ ██████╗
          ██║     ██╔════╝██║██╔═══██╗
          ██║     ███████╗██║██║   ██║
          ██║     ╚════██║██║██║   ██║
          ███████╗███████║██║╚██████╔╝
          ╚══════╝╚══════╝╚═╝ ╚═════╝
    
       Brought to you by linuxserver.io
    ───────────────────────────────────────
    
    To support LSIO projects visit:
    https://www.linuxserver.io/donate/
    
    ───────────────────────────────────────
    GID/UID
    ───────────────────────────────────────
    
    User UID:    1000
    User GID:    1000
    ───────────────────────────────────────
    Linuxserver.io version: 5.2.0_v2.0.12-ls454
    Build-date: 2026-05-07T08:42:43+00:00
    ───────────────────────────────────────
    
    [custom-init] No custom files found, skipping...
  • 可以看到:

    • 日志不断重复初始化

    • qBittorrent 主程序并未真正启动(WEB页面无任何响应,容器运行状态显示正常)

    • 容器进入无限重启循环

  • 飞牛NAS上演示故障现象

    微信图片_2026-05-10_160202_988.webp

检查配置目录

  • 演示:群晖NAS内qBittorrent的config配置文件路径如下

    /volume1/srv/moviepilot/config/qBittorrent/config
  • 进入qBittorrent容器的配置目录:

    # 进你自己的,别照抄路径。
    # 进入qBittorrent容器映射到本地NAS文件夹的config配置文件夹内
    
    cd /volume1/srv/moviepilot/config/qBittorrent/config
  • 列出当前路径内的文件和文件夹

    # 执行下面的命令
    ls
    
    # 列出后的文件和文件夹
    custom-cont-init.d
    custom-cont-init.d.SRNFpK4y
    custom-services.d.LSlq8IK4
    custom-cont-init.d.7RaiGffQ
    custom-services.d
    custom-services.d.SRNFpK4y
    custom-cont-init.d.aHZwJ2r9
    custom-services.d.7RaiGffQ
    qBittorrent
    custom-cont-init.d.LSlq8IK4
    custom-services.d.aHZwJ2r9
  • 继续查看当前路径内的 qBittorrent 配置目录:

    cd qBittorrent
  • 列出当前路径内的文件和文件夹

    # 执行下面的命令
    ls
    
    # 列出后的文件和文件夹
    BT_backup
    GeoDB
    lockfile
    nova3
    qBittorrent-data.conf
    watched_folders.json
    categories.json
    ipc-socket
    logs
    qBittorrent.conf
    rss

故障原因分析

出现以下异常现象:

  1. 残留临时初始化目录

    例如:
    
    custom-cont-init.d.SRNFpK4y
    custom-cont-init.d.7RaiGffQ
    custom-services.d.LSlq8IK4
    
    这些目录是 LinuxServer.io 镜像初始化过程中产生的临时目录。
    
    正常情况下不会长期存在。
    
    说明:
    
    - 容器初始化过程中断
    - Docker Compose 重建容器时状态异常
    - 导致启动流程未完成
  2. qBittorrent 锁文件未释放

    目录中存在:
    
    lockfile
    ipc-socket
    
    这类文件可能导致:
    
    - qBittorrent 误认为程序已经运行
    - WebUI 无法启动
    - Qt 配置锁死
    - 容器不断重启
  3. DSM 7.3 权限 / ACL 问题

    群晖 DSM 7.3 经常会:
    
    - 自动修改 Docker 目录 ACL
    - 导致 Linux 权限正常但 ACL 实际拒绝访问
    
    即使:
    
    chmod
    chown
    
    看起来正常,容器仍可能无法读写配置目录。

最安全修复方案(不会丢下载任务)

  • 先别删整个 config。

  • 你的 BT 种子、分类、下载任务都还在下面的文件夹内:

    BT_backup
  • 这是最重要的数据。


第一步:停止容器

  • 执行下面的命令

    # WEB页面手动停止qBittorrent容器运行也一样
    
    docker stop qbittorrent
  • 再确认容器真的关停了没:

    docker ps -a

第二步:删除异常临时目录

  • 进入qBittorrent容器config配置路径内:

    # 进入你的qBittorrent容器config配置路径内
    # 将下面的路径换成你自己的
    
    cd /volume1/srv/moviepilot/config/qBittorrent/config
  • 执行命令删除这些异常目录: