You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署SQL Server后使用本地有效凭据连接失败的技术求助

排查Docker部署SQL Server连接失败的问题

咱们一步步来拆解这个问题,从最常见的原因开始排查:

1. 端口冲突:本地SQL Server已占用1433端口

你本地已经安装了SQL Server 2019,它默认会抢占1433端口。而你的Docker配置里把容器的1433端口直接映射到主机的1433端口,这就导致了端口冲突——主机的1433已经被本地SQL Server占了,Docker没法绑定这个端口,要么容器启动失败,要么连接请求直接跑到本地SQL Server,但容器本身根本没提供服务。

验证方法:
打开命令提示符,执行:

netstat -ano | findstr :1433

查看输出里的PID,再打开任务管理器找到对应进程,如果是sqlservr.exe,那就是本地SQL Server占用了1433端口。

解决方案:

  • 方案一:临时停止本地SQL Server服务。打开服务(services.msc),找到SQL Server (MSSQLSERVER)右键停止,然后重启Docker容器。
  • 方案二:修改Docker端口映射,把主机端口改成未被占用的(比如1434):
    修改docker-compose.yml的ports部分:
    ports:
      - "1434:1433"
    
    重启容器后,连接时用localhost,1434作为服务器地址。

2. SA密码不符合规则,容器启动失败

官方SQL Server Docker镜像对SA_PASSWORD有强制要求:必须满足密码复杂度规则(至少8个字符,包含大写字母、小写字母、数字、特殊字符中的至少三种)。你的密码mama12只有6位,完全不达标,这会导致容器启动后立刻退出,自然无法连接。

验证方法:
执行命令查看容器状态:

docker ps -a

如果sqlserver容器状态是Exited,再查看日志:

docker logs <你的容器名称/ID>

日志里会明确提示密码不符合策略要求。

解决方案:
修改docker-compose.yml中的SA_PASSWORD为符合要求的密码(比如Mama12!),然后重启容器:

environment:
  ACCEPT_EULA: "Y"
  SA_PASSWORD: "Mama12!"
  MSSQL_PID: "Express"

之后用新密码连接即可。

3. 确认容器是否正常运行

如果前面两步没问题,再检查容器状态:

docker ps

确保sqlserver容器状态是Up,且端口映射正确显示(比如0.0.0.0:1433->1433/tcp)。

4. 防火墙补充检查

如果修改了映射端口(比如1434),记得在防火墙里开放对应的主机端口。也可以临时关闭防火墙测试连接,如果能连上,再调整防火墙规则允许Docker相关流量。

先试这些步骤,应该能解决你的连接问题!

内容的提问来源于stack exchange,提问作者Asad Iftikhar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 21:07:43