从SSMS连接到在容器内运行的SQL Server Express

问题描述

我正在尝试从主机上运行的SSMS连接到在容器内运行的sql Server Express实例。

容器启动如下:

docker pull microsoft/mssql-server-windows-express
docker run -d -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=password" -p 1436:1433 --name mydb microsoft/mssql-server-windows-express

容器在我使用的IP地址上运行

docker inspect --format '{{.NetworkSettings.Networks.nat.IPAddress}}' mydb

现在,我正在尝试使用SSMS以上述IP地址连接到该实例,但是出现以下错误

enter image description here

即使更改实例的大小写/位置,我也会遇到相同的错误,例如1.2.3.4,1436\sqlExpress1.2.3.4\sqlExpress,1436

我想念什么?

可能的重复项:

  1. Cannot connect to SQL Server express from SSMS
  2. Connect to SQL Express with SSMS

但是答案并没有帮助我。

  • 我确保容器已启动并正在运行。我可以ping到容器的IP地址。
  • 用户名密码正确

我可能会缺少的一件事是未在容器中的数据库实例上启用sql Server身份验证。我不确定该怎么做。

如何从SSMS连接到在容器内运行的sql Server Express实例?

解决方法

我使用的原始密码很弱(不是我没有使用问题中使用的password,而是一个仍然很弱的密码)。

使用包含大写,小写,字符和数字的密码启动新容器后,现在可以使用以下设置登录数据库。

enter image description here