Docker Compose创建的SQL Server数据库无法通过SSMS连接求助
问题解决步骤
核心问题是你的Docker Compose配置没有为SQL Server服务暴露端口,外部工具无法访问容器内的数据库实例,按以下步骤调整即可:
1. 修改Docker Compose配置
给db服务添加端口映射,修改后的完整配置如下:
version: "3.9" services: web: image: ${DOCKER_REGISTRY-}umbracoapp build: context: .\umbracoapp dockerfile: Dockerfile ports: - "8000:80" depends_on: - db db: image: "mcr.microsoft.com/mssql/server" ports: # 可自定义宿主机端口,例如要使用1434端口就写"1434:1433" - "1433:1433" environment: SA_PASSWORD: "Testing1234!!" ACCEPT_EULA: "Y"
2. 重启容器生效
在配置文件所在目录执行命令重启服务:docker-compose up -d --force-recreate
3. SSMS连接参数填写
打开SQL Server Management Studio,按以下参数填写连接信息:
- 服务器名称:
localhost,1433(如果自定义了宿主机映射端口,替换成对应端口即可,注意是英文逗号不是冒号) - 身份验证:选择SQL Server 身份验证
- 登录名:
sa - 密码:
Testing1234!!
额外排查点
- 执行
docker ps确认db服务的容器状态为Up,没有异常退出 - 确认宿主机对应映射端口没有被其他程序占用,端口被占用时换用其他未被占用的端口即可
- Windows/macOS/Linux环境如果开了系统防火墙,可临时关闭防火墙测试连接是否正常
内容的提问来源于stack exchange,提问作者Funky
相关产品推荐
相关产品推荐

