You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

群晖Docker中找不到/var/opt/mssql目录及映射启动失败求助

解决方案:群晖Docker中SQL Server 2022目录映射与权限问题

问题根源说明

  1. /var/opt/mssql是容器内部路径:你SSH登录的是群晖NAS主机,而这个路径属于SQL Server容器内部的文件系统,所以在主机的/var下找不到opt目录是正常现象。
  2. 权限拒绝的核心原因:SQL Server 2022默认以非root用户mssql(UID=10001,GID=10001)运行,直接映射群晖共享目录时,该用户没有目录的读写权限,导致无法创建必要的系统目录。

具体解决步骤

步骤1:在群晖上创建专用共享目录

  • 打开群晖DSM,进入控制面板 > 共享文件夹,新建一个共享文件夹(比如命名为mssql_data),建议关闭“启用回收站”避免权限冲突。

步骤2:设置共享目录的权限(关键)

  • 进入该共享文件夹的权限设置,点击新增,选择系统内部用户,手动添加UID=10001、GID=10001的用户,赋予其读取/写入/修改/删除的完全权限。
  • 或者通过SSH登录群晖主机,执行以下命令修改目录权限(假设共享目录路径为/volume1/mssql_data):
    chown -R 10001:10001 /volume1/mssql_data
    chmod -R 755 /volume1/mssql_data
    

步骤3:重新配置Docker容器的目录映射

  • 停止运行中的SQL Server容器,进入容器的编辑 > 卷设置:
    • 删除之前错误的映射,新增一条映射:
      • 主机路径:选择刚创建的/volume1/mssql_data
      • 容器路径:填写/var/opt/mssql
  • 保存配置后重启容器。

步骤4:验证容器运行与数据路径

  • 容器启动成功后,连接SQL Server执行select * from sys.master_files,确认physical_name指向容器内的/var/opt/mssql/data,此时该路径已映射到群晖共享目录,数据会持久化保存。

备选方案:临时以root用户运行(不推荐生产环境)

如果是测试场景,可以在容器启动参数中添加-e MSSQL_USER=root和-e MSSQL_SA_PASSWORD=你的SA密码,强制以root用户运行跳过权限检查,但这会带来安全风险,生产环境禁止使用。


内容的提问来源于stack exchange,提问作者informx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 14:57:03