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

MacBook M1上Parallels虚拟机SSMS连接Docker中SQL Server失败求助

MacBook M1下Docker Azure SQL Edge无法被Parallels Win11虚拟机连接的解决方法

问题背景

  • 设备:MacBook M1
  • Docker部署mcr.microsoft.com/azure-sql-edge:latest容器,使用的Docker Compose配置如下:
version: "3.9"

services:
  mssql:
    image: mcr.microsoft.com/azure-sql-edge:latest
    command: /opt/mssql/bin/sqlservr
    environment:
      ACCEPT_EULA: "Y"
      SA_PASSWORD: ${SAPassword}
    stdin_open: true
    container_name: sqlserver
    hostname: sqlserver
    network_mode: host
    ports:
      - 1433:1433
  • 同一设备上Parallels运行的Win11虚拟机安装了SSMS,尝试以sqlserver作为服务器名、sa账号登录时,报错:

A network-related or instance-specific error occurred while establishing a connection to SQL Server

排查与解决步骤

  1. 调整Docker网络配置
    M1 Mac的Docker host网络模式无法直接被Parallels虚拟机访问,改用默认桥接网络即可。修改Docker Compose,移除network_mode: host(hostname、stdin_open、command均可省略,镜像默认配置已满足启动需求):
version: "3.9"

services:
  mssql:
    image: mcr.microsoft.com/azure-sql-edge:latest
    environment:
      ACCEPT_EULA: "Y"
      SA_PASSWORD: ${SAPassword}
    container_name: sqlserver
    ports:
      - "1433:1433"

修改后重启容器:

docker-compose down && docker-compose up -d
  1. 获取Mac的局域网IP
    在Mac终端执行以下命令获取本地IP(Wi-Fi接口通常为en0,有线连接替换为en1):
ipconfig getifaddr en0

输出示例:192.168.1.105

  1. 使用Mac IP在SSMS中连接
    在Win11虚拟机的SSMS中,服务器名称填写[你的Mac局域网IP],1433(例如192.168.1.105,1433),输入sa账号和设置的SA_PASSWORD即可完成连接。

  2. 验证防火墙设置

  • Mac端:打开「系统设置」-「网络」-「防火墙」,确保Docker被允许接收传入连接,或临时关闭防火墙测试连接。
  • Win11端:确认防火墙允许SSMS发起 outbound 连接到1433端口。
  1. 确认容器服务状态
    在Mac终端执行docker ps,确认sqlserver容器处于Up状态;执行docker logs sqlserver,查看日志中是否包含SQL Server is now ready for client connections.,确保数据库服务正常启动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 23:35:31