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

树莓派Ubuntu20.04运行MSSQL Docker镜像遇exec格式错误求助

解决树莓派(ARM架构)上运行MSSQL Docker容器的exec格式错误

错误根源

你遇到的exec /opt/mssql/bin/permissions_check.sh: exec format error是架构不兼容导致的:树莓派采用ARM架构(armhf/arm64),而微软官方提供的mcr.microsoft.com/mssql/server系列镜像是为x86_64(AMD/Intel)架构编译的,Docker无法在ARM设备上直接运行x86_64的二进制文件,因此执行脚本时出现格式错误。

微软官方目前没有为ARM架构提供标准版MSSQL Server的Docker镜像,你需要采用以下替代方案:

方案1:使用官方Azure SQL Edge镜像(推荐)

Azure SQL Edge是微软针对边缘设备推出的轻量版SQL Server,官方支持ARM64架构,功能覆盖大部分常规业务需求,且免费提供开发者版。

docker-compose部署配置

修改你的docker-compose.yml:

version: "3.7"
services:
  sql-server-db:
    container_name: mssql
    image: mcr.microsoft.com/azure-sql-edge:latest
    ports:
      - "1433:1433"
    environment:
      MSSQL_SA_PASSWORD: ******
      ACCEPT_EULA: Y
      MSSQL_PID: "Developer" # 指定免费开发者版
    volumes:
      - ./Data/mssql:/var/opt/mssql/data

docker run命令启动

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=******" -e "MSSQL_PID=Developer" -p 1433:1433 --name mssql -d mcr.microsoft.com/azure-sql-edge:latest

方案2:使用社区维护的ARM兼容MSSQL镜像

如果需要完整的SQL Server功能,可以尝试社区维护的ARM镜像(注意:非官方镜像,使用前需评估安全性),例如nikolaik/mssql-server-linux-arm64:

docker run启动示例

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=******" -p 1433:1433 --name mssql -d nikolaik/mssql-server-linux-arm64:2022-latest

注意事项

  • 不要再尝试官方mssql/server系列镜像,这些镜像仅支持x86_64架构,无法在树莓派上运行。
  • 若坚持使用官方标准版SQL Server,可通过QEMU模拟x86_64架构,但会导致性能大幅下降,不推荐用于生产场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 04:50:27