【已解决】MACOS M4 芯片使用 Docker Desktop 工具安装 MICROSOFT SQL SERVER

1. 环境准备

  1. 确认 Docker Desktop 配置

确保已安装 Docker Desktop for Mac (Apple Silicon)(版本 ≥ 4.15.0)。开启 Rosetta(默认开启):

打开 Docker Desktop → Settings → General → Virtual Machine Options → Choose Virtual Machine Manager,勾选 Use Rosetta for x86/amd64 emulation on Apple Silicon。

  1. 验证架构
bash 复制代码
uname -m  # 应输出 "arm64"

2. 拉取并运行 SQL Server 容器

使用官方 ARM64 镜像(推荐),Microsoft 已提供支持 ARM64 的 SQL Server 2022 镜像。

命令如下:

bash 复制代码
docker run -e "ACCEPT_EULA=Y" \
           -e "MSSQL_SA_PASSWORD=Met@20250605" \
           -p 1433:1433 \
           -v sqlserver-data:/var/opt/mssql \
           --name sqlserver \
           --privileged \
           --platform linux/arm64/v8 \
           mcr.microsoft.com/azure-sql-edge
  • -e "ACCEPT_EULA=Y"

    接受 SQL Server 的最终用户许可协议(EULA)。必须设置为 Y 才能启动容器,否则会报错退出。

  • -e "MSSQL_SA_PASSWORD=Met@20250605"

    设置系统管理员(SA)账户的密码。密码必须符合 SQL Server 的复杂度要求:

    • 至少 8 个字符
    • 包含大写字母、小写字母、数字和特殊字符
    • 不包含用户名或简单词汇
  • -p 1433:1433

    将宿主机的 TCP 端口 1433 映射到容器内的 1433 端口,使外部应用可以通过 localhost:1433 访问 SQL Server。

    • 左侧 1433:宿主机端口(可修改为其他端口,如 1434:1433)
    • 右侧 1433:容器内 SQL Server 默认监听端口
  • -v sqlserver-data:/var/opt/mssql

    创建一个名为 sqlserver-data 的 Docker 数据卷,并挂载到容器内的 /var/opt/mssql 目录。

    这确保了:

    • 数据库文件在容器重启后不会丢失
    • 避免容器内文件系统限制导致的性能问题
  • --name sqlserver

    为容器指定名称 sqlserver,方便后续管理(如 docker start sqlserver、docker logs sqlserver)。

  • --platform linux/arm64/v8

    显式指定容器使用 ARM64 架构的镜像。在 macOS M4(ARM 芯片)上必须设置,否则 Docker 可能尝试运行 AMD64 镜像并导致兼容性问题。

  • --privileged

    赋予容器完全访问主机设备的权限,相当于容器内的 root 用户。

    注意:

    • 仅用于调试,生产环境不应使用
    • 可解决部分权限相关问题(如 /proc 目录访问)
  • mcr.microsoft.com/azure-sql-edge

    指定使用 Azure SQL Edge 的官方 Docker 镜像。这是一个轻量级版本的 SQL Server,专为 IoT 和边缘计算优化,支持 ARM64 架构。

运行截图:

相关推荐
Leinwin2 小时前
双城奔赴,智领未来:领驭科技亮相2026微软AI Tour上海·香港站
人工智能·科技·microsoft
brucelee1863 小时前
Claude Code 安装教程(Windows / Linux / macOS)
linux·windows·macos
皮皮冰燃4 小时前
docker-18-WSL中安装docker并部署flask服务
docker·容器·flask
少年白char4 小时前
整理上万首音乐后的完整工作流:下载、刮削、播放与避坑指南
docker·nas·musictag·音乐刮削·音乐标签
lijfrank6 小时前
MacOS 下 VS Code + LaTeX + Skim 双向同步配置
vscode·macos·pdf·latex·mactex
编码者卢布10 小时前
【Azure Container App】使用 yaml 部署 Container App 时遇见 400 Bad Request 错误
microsoft·azure
木雷坞10 小时前
K8s GPU 推理服务 ImagePullBackOff 排查与预热
云原生·容器·kubernetes·gpu算力
萧行之11 小时前
Docker部署Loki+Grafana+Vector实现全服务器日志监控(含N8N/SSH/Fail2ban监控)
服务器·docker·grafana
人工智能培训12 小时前
工程科研中的AI应用:结构力学分析技巧
人工智能·深度学习·机器学习·docker·容器
计算机安禾13 小时前
【Linux从入门到精通】第35篇:容器化技术预备——Docker安装与基本概念
linux·运维·docker