无法在 Linux SQL 服务器 docker 映像中绑定装载 Windows 文件夹

Unable to bind mount a Windows folder in a Linux SQL Server docker image

我正在尝试 运行 docker 图像 mcr.microsoft。com/mssql/server:2019-latest on a windows host.

当运行使用此命令行时,一切正常:

docker run --rm -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=My_Password" -p 1433:1433 mcr.microsoft.com/mssql/server:2019-latest

当我尝试绑定挂载 /var/opt/mssql/data 文件夹以从我的 windows 主机访问它的内容时,我收到以下错误:

PS C:\Docker> docker run --rm -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=My_Password" -v C:\SQL\data:/var/opt/mssql/data -p 1433:1433 mcr.microsoft.com/mssql/server:2019-latest
SQL Server 2019 will run as non-root by default.
This container is running as user mssql.
To learn more visit https://go.microsoft.com/fwlink/?linkid=2099216.
2020-05-13 20:39:01.91 Server      Setup step is copying system data file 'C:\templatedata\master.mdf' to '/var/opt/mssql/data/master.mdf'.
2020-05-13 20:39:01.99 Server      ERROR: Setup FAILED copying system data file 'C:\templatedata\master.mdf' to '/var/opt/mssql/data/master.mdf':  31(A device attached to the system is not functioning.)
ERROR: BootstrapSystemDataDirectories() failure (HRESULT 0x8007001f)

看起来像这个问题:https://support.microsoft.com/en-us/help/4212960/fix-sql-server-2017-won-t-start-with-linux-container-image-on-docker 这应该是固定的。但是我尝试了几个版本的 docker 图像,包括 mcr.microsoft.com/mssql/server:2017-CU7-ubuntu,这应该是那个问题所在的版本已修复。

这似乎是 Windows 的新 Docker 版本中的一个问题。我确实从 2.3.0.2 回滚到 2.2.0.5,现在绑定安装按预期工作。

在 mssql-docker github 中提出了一个问题:https://github.com/microsoft/mssql-docker/issues/600