在MacBook上通过Docker安装SQL Server时遇到镜像拉取权限错误的技术问询
解决Docker拉取SQL Server镜像权限/仓库不存在的问题
我之前也踩过这个坑!你遇到的错误核心原因是microsoft/mssql-server-linux这个镜像仓库已经被微软官方废弃移除了,现在官方统一使用新的镜像路径,再加上Mac的芯片架构适配问题,下面给你一步步解决:
1. 使用官方最新的镜像路径拉取
现在官方的SQL Server Linux镜像托管在微软容器注册表(MCR)上,正确的拉取命令是:
docker pull mcr.microsoft.com/mssql/server:latest
如果需要指定具体版本(比如2022稳定版),可以用:
docker pull mcr.microsoft.com/mssql/server:2022-latest
2. 适配Mac的芯片架构
如果你是M系列(ARM架构)的Mac,需要注意架构适配:
- 若要兼容x86版本(适合所有SQL Server版本),拉取时加上平台参数:
docker pull --platform linux/amd64 mcr.microsoft.com/mssql/server:2022-latest - 若使用SQL Server 2022及以上版本,官方已经推出ARM原生镜像,直接拉取即可:
docker pull mcr.microsoft.com/mssql/server:2022-latest
3. 运行容器的关键注意事项
拉取成功后,运行容器必须设置合规的SA密码和接受许可,示例命令:
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=YourStrong!Passw0rd" \ -p 1433:1433 --name sqlserver_container \ -d mcr.microsoft.com/mssql/server:2022-latest
⚠️ 注意:SA密码必须符合复杂度要求(至少8位,包含大小写、数字和特殊字符),否则容器会启动失败。
关于错误信息的说明
守护进程返回错误:拉取microsoft/mssql-server-linux镜像权限被拒绝,该仓库不存在或可能需要执行'docker login'操作:拒绝:请求访问该资源被拒绝。
这个提示里的“权限被拒绝”其实是误导,真实原因是旧的Docker Hub仓库已经被微软删除,不管是否登录都拉取不到,换成新的MCR路径就可以正常拉取,而且这个仓库是公开的,无需登录Docker Hub。
内容的提问来源于stack exchange,提问作者user15945543
相关产品推荐
相关产品推荐

