【发布时间】:2020-09-03 15:22:48
【问题描述】:
我已经关注了微软官方documentation,并且已经安装了SQL Server Docker镜像
因此,我在 Docker 上运行了一个 SQL Server 映像,其 IP 地址为 172.17.0.2
我还可以使用 sqlcmd 和我的虚拟密码轻松连接到它
问题是我无法通过 SSMS 连接到它:
Login failed for user 'sa'. (Microsoft SQL Server, Error: 18456)
当然我在发布这个问题之前阅读了其他 StackOverflow posts 并且我尝试了多次登录:
- 本地主机,1433
- 本地主机:1433
- 172.17.0.2,1433
- 等等……
如果 localhost 和 docker 镜像的 IP 地址都不能正常工作,我该如何连接?
【问题讨论】:
-
你是如何启动你的容器的?使用
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Your$trongPw" -p 1433:1433时,请勿在密码周围加上任何引号。另请注意,在 Windows Powershell 中运行时使用双引号,在 Linux 中使用单引号。运行 Express 版本时,您必须连接到172.17.0.2,1433\SQLEXPRESS。有防火墙阻止 SSMS 连接吗? -
该错误表明您已连接到容器实例。单击错误对话框中的显示详细信息以查看 state code 是否提供更多信息。此外,请检查容器中的 sql server 错误日志以获取有关登录尝试失败的其他信息:
cat /var/opt/mssql/log/errorlog -
docker 实例是否在您运行 sql 客户端的同一台计算机上运行?
-
@rfkortekaas,是的,我在同一台计算机上安装了 SSMS 和 Docker
-
嗨@TWP,命令
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=HelloWorld123" -p 1433:1433 -t 3c7ee124fdd6返回给我Error response from daemon: driver failed programming external connectivity on endpoint vibrant_shirley (064f1bfa7b66d68995f76c98cb80594807ac30e9659b35e1f217885dedb9094b): Bind for 0.0.0.0:1433 failed: port is already allocated.
标签: sql-server docker containers ssms sqlcmd