Getting SQL Server 2025 RTM Running in Containers on macOS
SQL Server 2025 RTM is here, and if you’re running Docker on macOS, you might have hit a wall trying to get it running. Here’s what happened when I tried spinning up the latest container image and how I worked around it.
The Problem
I was excited to test out SQL Server 2025 RTM in a container on my Mac, so I pulled up my trusty Docker command:
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \
-p 1433:1433 --name sql1 --hostname sql1 \
-d \
mcr.microsoft.com/mssql/server:2025-latest
I thought the container started, but when I checked the logs, I saw this:
SQL Server 2025 will run as non-root by default.
This container is running as user mssql.
To learn more visit https://go.microsoft.com/fwlink/?linkid=2099216.
assertion failed [x86_avx_state_ptr->xsave_header.xfeatures == kSupportedXFeatureBits]:
(ThreadContextSignals.cpp:414 rt_sigreturn)
No SQL Server startup. Just an assertion failure about AVX state and the container dies.
What’s Actually Happening
SQL Server 2025 RTM requires AVX (Advanced Vector Extensions) CPU instructions. As you can see in the output above it’s trying to read the capabilites of the CPU and it just crashes. The problem is that Docker Desktop on macOS, specifically on Apple Silicon Macs running x86_64 containers via Rosetta 2, doesn’t properly support AVX instructions when emulating x86_64 architecture.
Here’s my docker config, I am running the latest and greated Docker Desktop and Engine with the following configuration:
docker version
Client:
Version: 28.5.2
API version: 1.51
Go version: go1.25.3
Git commit: ecc6942
Built: Wed Nov 5 14:42:30 2025
OS/Arch: darwin/arm64
Context: desktop-linux
Server: Docker Desktop 4.52.0 (210994)
Engine:
Version: 29.0.1
API version: 1.52 (minimum version 1.44)
Go version: go1.25.4
Git commit: 198b5e3
Built: Fri Nov 14 16:18:20 2025
OS/Arch: linux/arm64
Experimental: false
containerd:
Version: v2.1.5
GitCommit: fcd43222d6b07379a4be9786bda52438f0dd16a1
runc:
Version: 1.3.3
GitCommit: v1.3.3-0-gd842d771
docker-init:
Version: 0.19.0
GitCommit: de40ad0
So as of today, there’s no AVX emulation of Docker Desktop/Engine. I’m guessing that at some time in the future this will change.
The Solution: OrbStack
Enter OrbStack, a lightweight alternative to Docker Desktop for macOS. One of the key differences is that OrbStack has better x86_64 emulation support, including AVX instructions. OrbStack is a drop-in replacement for Docker and you can use the same exact CLI commands. So you don’t need to learn new commands or install different tools. You simply switch your Docker context and keep using the same docker commands you’re familiar with.
Here’s what my Docker contexts look like:
docker context ls
NAME DESCRIPTION DOCKER ENDPOINT
default Current DOCKER_HOST based configuration unix:///var/run/docker.sock
desktop-linux Docker Desktop unix:///Users/anocentino/.docker/run/docker.sock
orbstack * OrbStack unix:///Users/anocentino/.orbstack/run/docker.sock
To switch to OrbStack, I simply ran:
docker context use orbstack
orbstack
Current context is now "orbstack"
After switching contexts, you can see OrbStack is now active and using the Docker Engine - Community rather than Docker Desktop:
docker version
Client:
Version: 28.5.2
API version: 1.51
Go version: go1.25.3
Git commit: ecc6942
Built: Wed Nov 5 14:42:30 2025
OS/Arch: darwin/arm64
Context: orbstack
Server: Docker Engine - Community
Engine:
Version: 28.5.2
API version: 1.51 (minimum version 1.24)
Go version: go1.24.9
Git commit: 89c5e8f
Built: Wed Nov 5 14:43:35 2025
OS/Arch: linux/arm64
Experimental: false
containerd:
Version: v2.2.0
GitCommit: 1c4457e00facac03ce1d75f7b6777a7a851e5c41
runc:
Version: 1.3.3
GitCommit: d842d7719497cc3b774fd71620278ac9e17710e0
docker-init:
Version: 0.19.0
GitCommit: de40ad0
Then I ran the exact same command as before, but pointing at Orbstack:
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \
-p 1433:1433 --name sql1 --hostname sql1 \
-d \
mcr.microsoft.com/mssql/server:2025-latest
This time, the logs showed what I wanted to see:
SQL Server 2025 will run as non-root by default.
This container is running as user mssql.
2025-11-26 14:56:10.11 Server Microsoft SQL Server 2025 (RTM) - 17.0.1000.7 (X64)
Oct 21 2025 12:05:57
Copyright (C) 2025 Microsoft Corporation
Enterprise Developer Edition (64-bit) on Linux (Ubuntu 22.04.5 LTS) <X64>
...
2025-11-26 14:56:12.95 spid48s SQL Server is now ready for client connections.
Success! SQL Server 2025 RTM started up without issues.
According to the OrbStack release notes, they specifically added support for AVX operations in their emulation layer. This is exactly what SQL Server 2025 needs to run properly on Apple Silicon Macs. Until Microsoft releases an ARM64 version of SQL Server for Linux (if they ever do), OrbStack’s improved emulation is your best bet for running SQL Server 2025 containers on macOS.
Testing the New Features
Once I had SQL Server 2025 running in OrbStack, I went ahead and tested out some of the new vector database features. I created tables with the new VECTOR datatype and built vector indexes on them. Both worked without any issues. The functionality is there and operational, which is great for testing and development work.
I still need to do some performance testing to see how well the vector operations perform under OrbStack’s emulation, but for basic feature validation and development, it’s working perfectly fine.
You can download OrbStack from orbstack.dev and give it a try.