Docker中运行的MSSQL Server拒绝连接,SSMS访问报错10054如何解决
问题修复步骤
核心问题修正
你当前配置存在两处明显错误,优先调整:
- 端口映射配置错误
MSSQL Server容器默认监听的内部端口是1433,你当前配置错误填写了内部端口为1534,导致端口映射完全不匹配。需要将sqlserver服务的ports配置修改为"1533:1433",即宿主机1533端口映射到容器内部MSSQL默认服务端口。 - 登录账号错误
环境变量中MSSQL_PID: "Express"是指定MSSQL的运行版本为Express版,并非登录账号。MSSQL的默认管理员账号为sa,你需要使用账号sa、密码pa55w0rd!登录,而非将Express作为登录名。
修改后的sqlserver服务配置参考:
sqlserver: image: "mcr.microsoft.com/mssql/server:2017-latest" volumes: - /var/lib/docker/volumes/sql_volume/_data environment: ACCEPT_EULA: "Y" SA_PASSWORD: "pa55w0rd!" MSSQL_PID: "Express" ports: # 修正内部端口为MSSQL默认的1433 - "1533:1433"
补充连接注意事项
修改配置重启容器后,按以下参数连接即可:
服务器名称:
localhost,1533(注意SSMS中指定端口用逗号分隔,不是冒号)
身份验证:SQL Server身份验证
登录名:sa
密码:pa55w0rd!
如果仍连接失败,可按顺序排查:
- 执行
docker ps确认sqlserver容器处于正常运行状态,如异常退出可执行docker logs <容器ID>查看启动日志,确认是否为SA密码不符合复杂度要求导致启动失败 - Windows环境运行Docker时,可临时关闭系统防火墙测试,确认是否是防火墙拦截了1533端口的通信
内容的提问来源于stack exchange,提问作者Hugo Vrana
相关产品推荐
相关产品推荐

