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

Windows Docker启动MS SQL Server 2019镜像失败:创建shim任务出错

解决Windows Docker Desktop(Linux容器模式)启动SQL Server 2019容器的rootfs错误

针对启动SQL Server容器时出现的invalid rootfs: stat ... no such file or directory错误,可按以下步骤排查修复:

1. 清理损坏的容器与镜像缓存

  • 删除失败创建的容器:
    docker rm -f sqlserver
    
  • 彻底清理未使用的镜像、容器、卷和缓存:
    docker system prune -af
    
  • 重新拉取干净的SQL Server镜像:
    docker pull mcr.microsoft.com/mssql/server:2019-latest
    

2. 验证Docker Desktop的WSL后端配置

  • 打开Docker Desktop设置,进入Resources > WSL Integration,确保启用了正在使用的WSL发行版(如Ubuntu)。
  • 若之前修改过data-root配置,确认路径格式正确(JSON中需用双反斜杠),例如:
    "data-root": "D:\\Docker\\data"
    
    修改后重启Docker Desktop生效。

3. 修正数据卷挂载方式

避免使用相对路径,改用绝对路径挂载,同时确保本地目录存在且Docker有访问权限:

  • 使用Windows绝对路径(需先创建D:\docker\sqlserver\data目录):
    docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=YourStrongPass123!" -p 1433:1433 -v D:/docker/sqlserver/data:/var/opt/mssql/data --name sqlserver -d mcr.microsoft.com/mssql/server:2019-latest
    
  • 或使用WSL路径(需先在WSL中创建/mnt/d/docker/sqlserver/data目录):
    docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=YourStrongPass123!" -p 1433:1433 -v /mnt/d/docker/sqlserver/data:/var/opt/mssql/data --name sqlserver -d mcr.microsoft.com/mssql/server:2019-latest
    
  • 检查Docker Desktop的Resources > File Sharing,确认已添加D盘的访问权限。

4. 先启动无挂载的基础容器验证

先排除挂载问题,执行简化版启动命令:

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=YourStrongPass123!" -p 1433:1433 --name sqlserver -d mcr.microsoft.com/mssql/server:2019-latest

若容器能正常启动,再逐步添加挂载参数和其他配置。

5. 修复WSL文件系统(若为WSL后端异常)

  • 打开PowerShell,关闭所有WSL实例:
    wsl --shutdown
    
  • 重启Docker Desktop后再次尝试启动容器。
  • 若问题仍存在,可重置WSL发行版(以Ubuntu为例):
    wsl --unregister Ubuntu
    
    重新安装WSL发行版后,在Docker Desktop中重新配置WSL集成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 18:22:20