Windows下Docker运行SQL Server容器启动退出报错-1问题咨询
Windows环境下SQL Server Docker容器启动报Error1退出解决方法
核心故障点排查(按出现概率排序)
- SA密码不符合复杂度要求:这是该报错最高发的诱因。SQL Server强制要求SA密码长度不低于8位,且必须包含大写字母、小写字母、数字、特殊字符四类中的至少三类,当前使用的
Password仅包含大小写字母,不满足规则,会直接触发启动失败。 - 挂载路径格式错误:Windows环境下Docker不识别
/Filippo/这类Linux风格的根路径写法:- 若使用Docker Desktop默认的WSL2后端,Windows C盘用户目录的对应挂载路径为
/mnt/c/Users/Filippo/(默认系统盘为C盘、用户名为Filippo时) - 若使用Hyper-V后端,直接写Windows原生绝对路径即可,格式为
C:/Users/Filippo/xxx
- 若使用Docker Desktop默认的WSL2后端,Windows C盘用户目录的对应挂载路径为
- 目录权限与共享配置错误:Windows下不需要执行Linux的chown授权,按以下步骤配置即可:
- 右键本地创建的
data/log/secrets三个目录,选择「属性-安全」,给当前登录用户、Authenticated Users组分配完全控制权限后保存 - 打开Docker Desktop设置,进入「Resources-File Sharing」页面,勾选存放挂载目录的对应盘符,保存后重启Docker服务
- 右键本地创建的
- 参数引号解析错误:Windows的PowerShell、CMD终端无法正确解析单引号包裹的环境变量参数,传
-e参数时统一使用双引号,避免环境变量读取失败。
修正后的可直接运行启动命令
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=P@ssw0rd123" --name sqlserver -p 1433:1433 -v /mnt/c/Users/Filippo/data:/var/opt/mssql/data -v /mnt/c/Users/Filippo/log:/var/opt/mssql/log -v /mnt/c/Users/Filippo/secrets:/var/opt/mssql/secrets -d mcr.microsoft.com/mssql/server:2019-latest
排查提示:如果调整后容器依然退出,直接执行
docker logs sqlserver查看详细运行日志,Error1是通用启动失败提示,日志会明确标注具体故障点(权限不足/密码不合规/挂载失败等)。
内容的提问来源于stack exchange,提问作者astroxnd
相关产品推荐
相关产品推荐

