使用SQL Server Management Studio远程连接到docker容器

时间:2017-12-26 23:03:34

标签: sql-server docker digital-ocean

上下文:我正在尝试构建一个开发SQL Server,我可以继续学习SQL并使用Microsoft SQL Server Management Studio(SSMS)在Windows PC上进行访问。

所以我将AdventureWorks数据库放在运行在DigitalOcean Ubuntu 16.04盒子上的MS SQL Server 2017的Docker容器上。从我的Mac,我可以远程SSH到服务器,访问容器和查询数据库。

但是我希望在我的Windows PC上使用SSMS,并且不确定我是如何开始连接到遥控盒的。在下图中,没有选项可以指定SSH密钥或甚至登录到Ubuntu框,只能访问SQL服务器。

enter image description here

这甚至可能吗?

7 个答案:

答案 0 :(得分:19)

使用公共IP地址通过SSMS连接,然后是逗号分隔符,然后是端口(xxx.xx.xx.xxx,端口)

您还需要sa凭据才能完成这项工作。

答案 1 :(得分:4)

您可以使用localhost ip在本地连接。在这种情况下,“服务器名称”输入将变为127.0.0.1,端口号

For clarity, I attached image of my SSMS Connection Dialog

答案 2 :(得分:2)

按照此站点的说明在Windows容器上为我解决了该问题: https://www.sqlshack.com/sql-server-with-a-docker-container-on-windows-server-2016/ 可以从SSMS立即连接到SQL Server。

尝试使用以下命令在Linux容器上也可以使用

docker run --name mssqltrek-con1 -d -p 1433:1433 -e sa_password=My$eCurePwd123# -e ACCEPT_EULA=Y microsoft/mssql-server-windows-developer

运行此命令后,您可以使用以下方法检索正确的IP:

docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" mssqltrek-con1

答案 3 :(得分:2)

您可以连接到SQL docker服务器

  1. 使用托管docker映像的计算机的IP端口

IP_Of_Machine,端口

  1. 提供用户-sa(默认)和密码。

  2. 您也可以执行命令>

docker exec -it <容器ID |容器名称> / opt / mssql-tools / bin / sqlcmd -S本地主机-U sa -P <您的密码>

答案 4 :(得分:1)

这与 OP 的问题并不完全相同,但我创建了一个 sql docker 容器,然后无法从 SQL Server Management Studio 登录到它。原来我用的sa密码不够安全。一旦我删除了我的容器并使用更安全的密码重新创建了一个,它就可以让我从 SQL Server Management Studio 连接到它。如果您没有指定足够强的密码,它仍然会创建容器 OK - 您只是无法登录! 希望这会为某人节省一些时间。

答案 5 :(得分:0)

当我尝试通过SSMS进行连接时,我也遇到了同样的问题,即使我尝试使用localhost,1433也无济于事。 enter image description here

经过一些研发,我找到了解决方法

  • 打开Kubernetes,它将作为docker工具箱的一部分安装 (我的系统赢得了不支持hyper-v的10家)
  • 单击将在应用程序左侧的sql容器
  • 复制将在应用程序右侧的IP地址
  • 使用端口号为XXX.XXX.XX.XX,1433的IP地址以及SSMS中的凭据

enter image description here

答案 6 :(得分:0)

就我而言,是Cisco VPN阻止主机连接到容器IP。我必须取消选中“ Cisco Any Connect网络访问管理器”,如下图所示,它才能正常工作。这样可以确保VPN不再管理连接。

enter image description here