运行docker-compose up时出现invalid ELF header共享库加载错误
解决SQL Server容器启动时的"invalid ELF header"错误
检查Docker架构兼容性
Windows 11上的Docker如果用了WSL 2后端,得确认WSL发行版是x86_64架构。要是你用ARM设备跑Windows,SQL Server 2019的Linux镜像是只支持x86的,就会出这个错。操作步骤:- 打开WSL终端,执行
uname -m,输出不是x86_64的话就是架构不匹配。 - 切换到x86_64的WSL发行版,或者在Docker设置里关掉“使用基于WSL 2的引擎”(改用Hyper-V后端,仅限x86_64设备)。
- 打开WSL终端,执行
清理损坏的镜像缓存
本地的SQL Server镜像可能损坏了,先清掉再重新拉取:docker rmi mcr.microsoft.com/mssql/server:2019-latest docker pull mcr.microsoft.com/mssql/server:2019-latest之后再重新运行
docker-compose up。排查本地SQL Server的干扰
本地安装的SQL Server可能占用了1433端口,或者和容器网络配置冲突。可以临时停掉本地服务:- 打开“服务”窗口,找到“SQL Server (MSSQLSERVER)”。
- 右键选择“停止”,再重启容器试试。
修改docker-compose.yml指定架构
给SQL Server服务添加一行platform: linux/amd64,强制用正确的架构运行:version: "3" services: db: image: mcr.microsoft.com/mssql/server:2019-latest platform: linux/amd64 # 新增这一行 environment: ACCEPT_EULA: Y SA_PASSWORD: password ports: - "1433:1433" app: build: context: . dockerfile: Dockerfile image: myApp:latest ports: - "3003:3003" environment: DB_SERVER: db DB_USER: user DB_PASSWORD: password DB_DATABASE: ShopDB
内容的提问来源于stack exchange,提问作者Keahi
相关产品推荐
相关产品推荐

