我试图在windows主机上运行docker镜像mcr.microsoft.commssqlserver:2019-latest。
当运行这个命令行时,一切工作正常。
docker run --rm -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=My_Password" -p 1433:1433 mcr.microsoft.com/mssql/server:2019-latest
当我试图绑定挂载varoptmssqldata文件夹,从我的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.comen-ushelp4212960fix-sql-server-2017-won-t-start-with-linux-container-imag-on-docker。这应该是被修复的。但我尝试了几个版本的docker镜像,包括mcr.microsoft.commssqlserver:2017-CU7-ubuntu,这应该是该问题被修复的版本。
这似乎是新版Docker for Windows中的一个问题。我从2.3.0.2回滚到了2.2.0.5,现在绑定挂载可以正常工作。
在mssql-docker github中已经提出了一个问题。https:/github.commicrosoftmssql-dockerissues600。