使用Docker Engine API创建SQL Server Express镜像时拉取被拒绝如何解决
问题原因澄清
你遇到的拉取权限报错和ACCEPT_EULA参数无关,这个参数是容器启动时的环境变量,不需要在拉取镜像的ImageCreate接口中传递。报错的核心原因是你使用的镜像名已经废弃:微软的官方容器镜像早已全部迁移到微软容器镜像Registry,旧的microsoft/mssql-server-windows-express镜像源已经停止维护,无法公开拉取。
可行解决方案
- 修正拉取请求的镜像地址参数,使用官方公开的镜像路径即可正常拉取,示例请求如下:
POST /images/create?fromImage=mcr.microsoft.com/windows/mssql-server-windows-express&tag=latest - 拉取完成后创建容器时,再在
ContainerCreate接口的Env字段中添加ACCEPT_EULA=Y参数即可正常启动SQL Server服务,示例参数片段:{ "Env": ["ACCEPT_EULA=Y", "SA_PASSWORD=your_strong_password"], "Image": "mcr.microsoft.com/windows/mssql-server-windows-express:latest" } - 拉取前请确认你的Docker daemon运行在Windows容器模式下,该镜像仅支持Windows架构,Linux容器模式下无法拉取对应架构的镜像,也会触发类似报错。
内容的提问来源于stack exchange,提问作者hellothere
相关产品推荐
相关产品推荐

