我正在尝试从Microsoft SQL Server Express映像运行docker容器(https://hub.docker.com/r/microsoft/mssql-server-windows-express/)
例如,我尝试了以下命令(一旦我开始工作,我就会使用-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
(不是真正的密码 - 我尝试了很多密码,因为我在下面看到的修复错误的建议之一是确保密码符合Microsoft的密码政策。但是对于我获得的所有密码同样的错误)
我还试过小写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
(输入最后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]
主要建议是确保密码符合SQL Server的密码标准,但我认为我尝试过的所有密码都可以。
我在Windows 10 Enterprise(build 14393.693)上运行Docker。 我有Docker for Windows版本17.03.0-ce-win1(10300)。
如果能够使用microsoft / mssql-server-windows-express Docker imamge从容器内连接到SQL Server,我需要做什么?
由于
答案 0 :(得分:0)
我不知道你是否找到了这个问题的答案。我没有尝试从容器内连接到数据库,但我已经从容器外部的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
然后通过SSMS登录数据库,如下所示: