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

noo*_*r69 23 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服务器.

在此输入图像描述

这甚至可能吗?

pau*_*ton 26

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

您还需要sa凭据才能使其正常工作.


小智 6

您可以连接到 SQL docker 服务器

  1. 使用托管 docker 镜像的机器的 IP、端口

IP_Of_Machine、端口

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

  2. 你也可以使用命令>

docker exec -it <container_id|container_name> /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P <您的密码>

  • 好的。我正在寻找“IP,Port”,因为我错误地写了“IP:Port” (3认同)

Gya*_*yan 6

我从本页的答案中受益,但是,我必须进行自己的调整。由于某种原因,就我而言,它不接受 localhost,1433 但它确实接受 127.0.0.1,1433


Muh*_*ooq 5

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

为了清楚起见,我附加了“ SSMS连接”对话框的图像


Bar*_*VdA 5

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

如果这也适用于使用此命令的 Linux 容器,请尝试一下:

docker run --name mssqltrek-con1 -d -p 1433:1433 -e sa_password=My$eCurePwd123# -e ACCEPT_EULA=Y microsoft/mssql-server-windows-developer
Run Code Online (Sandbox Code Playgroud)

运行后,您可以使用以下命令检索正确的 ip:

docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" mssqltrek-con1
Run Code Online (Sandbox Code Playgroud)


Aas*_*yay 5

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

在此处输入图片说明


Dav*_*lds 5

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

  • 这正是发生在我身上的事情。我没有使用足够强的密码。很棒的提示。 (2认同)