从Docker容器中连接到SQL Server Express会导致评估密码时发生错误

我想从Microsoft SQL Server Express镜像( https://hub.docker.com/r/microsoft/mssql-server-windows-express/ )运行docker容器,

例如,我已经尝试了下面的命令(我将使用-d标志,一旦我得到它的工作)

docker run -it -p 1433:1433 -e SA_PASSWORD=Mfp_4871nJUj_1-23H -e ACCEPT_EULA=Y --name to_delete_1 microsoft/mssql-server-windows-express powershell.exe docker run -it -p 1433:1433 -e 'SA_PASSWORD=Mfp_4871nJUj_1-23H' -e 'ACCEPT_EULA=Y' --name to_delete_1 microsoft/mssql-server-windows-express powershell.exe 

(不是真正的密码 – 我已经尝试了很多密码,因为修复我在下面看到的错误的build议之一是确保密码符合微软的密码政策。但是对于所有的密码我得到相同的错误)

我也试过小写的sa_password

但是,每次我尝试使用任何一个容器内的sa帐户连接

 sqlcmd -U sa -P Mfp_4871nJUj_1-23H sqlcmd -S localhost -U sa -P Mfp_4871nJUj_1-23H sqlcmd -S localhost\sqlexpress -U sa -P Mfp_4871nJUj_1-23H sqlcmd -U sa sqlcmd -S localhost -U sa sqlcmd -S localhost\sqlexpress -U sa 

(input最后3个密码)

我明白了

 Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : Login failed for user 'sa'.. 

看看它显示的SQL Server日志

 2017-03-13 21:25:52.32 Logon Error: 18456, Severity: 14, State: 7. 2017-03-13 21:25:52.32 Logon Login failed for user 'sa'. Reason: An error occurred while evaluating the password. [CLIENT: 172.22.251.6] 

主要的build议是确保密码符合SQL Server的密码标准,但我认为所有的密码,我已经尝试做。

我在Windows 10 Enterprise上运行Docker(构build14393.693)。 我有Docker for Windows版本17.03.0-ce-win1(10300)。

我需要做什么才能连接到SQL Server从容器内使用microsoft / mssql-server-windows-express Docker imamge?

谢谢

我不知道你是否find了这个问题的答案。 我没有尝试从容器内连接到数据库,但我已经从容器外的SSMS连接到它。 对我来说,关键是在原始命令中用双引号指定密码 。 最后的命令是这样的:

 docker run -d -p 1433:1433 -e sa_password="useComplexPasswordHere" -e ACCEPT_EULA=Y microsoft/mssql-server-windows-express 

然后我可以通过SSMS连接到它。 使用以下命令从Docker容器获取IP地址:

 docker inspect 

然后通过这样的SSMSlogin到数据库:

SSMSlogin信息