将SQL Server数据库附加到Docker容器会引发错误 – Docker for Windows

我在Powershell和Docker for Windows中使用下面的命令(Windows 10 Pro)

docker run -d -p 1433:1433 -e sa_password=Infra_2017 -e ACCEPT_EULA=Y -vc:/infra_mvc_projects/SampleDb:c:/infra_mvc_projects/SampleDb -e attach_dbs="[{'dbName':'AdventureWorksDW2008R2_Data','dbFiles': 

['c:\ infra_mvc_projects \ SampleDb \ AdventureWorksDW2008R2_Data.mdf','c:\ infra mvc_projects \ SampleDb \ AdventureWorksDW2008R2_Log.ldf']}]“microsoft / mssql-server-windows

以下是错误

  VERBOSE: Starting SQL Server docker : Sqlcmd: 'AdventureWorksDW2008R2_Data";CREATE DATABASE "AdventureWorksDW2008R2_Data" ON (FILENAME = N'c:\infra_mvc_projects\SampleDb\AdventureWorksDW2008R2_Data.mdf'), (FILENAME = N'c:\infra_mvc_projects\SampleDb\AdventureWorksDW2008R2_Log.ldf') FOR ATTACH ;"': Unexpected argument. Enter '-?' for help. At line:1 char:1 + docker logs 673 + ~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (Sqlcmd: 'Advent... '-?' for help.:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError VERBOSE: Changing SA login credentials VERBOSE: Attaching 1 database(s) VERBOSE: Invoke-Sqlcmd -Query sp_detach_db "AdventureWorksDW2008R2_Data";CREATE DATABASE "AdventureWorksDW2008R2_Data" ON (FILENAME = N'c:\infra_mvc_projects\SampleDb\AdventureWorksDW2008R2_Data.mdf'), (FILENAME = N'c:\infra_mvc_projects\SampleDb\AdventureWorksDW2008R2_Log.ldf') FOR ATTACH ; VERBOSE: Started SQL Server. 
  • 容器被创build并能够在Sql server management studio中打开。 但无法附加上述错误的数据库。

根据GitHub上发布的解决scheme,最新的开发人员和设置ATTACH_DBs环境variables的快速sqlserver映像工作正常。