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

Docker中MSSQL Server容器评估期已过期的解决求助

解决SQL Server Docker容器评估期过期问题

核心问题

你使用的mcr.microsoft.com/mssql/server:2022-latest镜像默认是评估版,评估期限到期后容器无法启动。你之前执行的docker run命令存在错误:该命令是用来创建新容器的,而非启动现有容器,且旧容器依赖的评估版镜像本身带有授权限制,仅通过环境变量无法覆盖。

解决方案(保留现有数据库)

1. 备份现有容器的数据

先将容器内的数据库文件导出到本地,确保数据不丢失:

  • 如果容器还能临时启动(尝试启动,失败也不影响备份):
    docker start <你的容器ID/名称>
    
  • 复制容器内SQL Server数据目录到本地:
    docker cp <容器ID/名称>/var/opt/mssql/data/. ./mssql-data-backup
    
    该目录包含所有数据库的.mdf和.ldf文件,是恢复数据的核心。

2. 拉取正式授权的Developer版镜像

拉取免费的Developer版本镜像(适合开发场景,无评估期限制):

docker pull mcr.microsoft.com/mssql/server:2022-developer

3. 创建新容器并挂载备份数据

用新的Developer镜像创建容器,同时挂载本地备份的数据目录,实现数据库复用:

docker run -e "MSSQL_PID=Developer" \
  -e "ACCEPT_EULA=Y" \
  -e "SA_PASSWORD=Gs070201!" \
  -p 1433:1433 \
  -v ./mssql-data-backup:/var/opt/mssql/data \
  -d mcr.microsoft.com/mssql/server:2022-developer
  • -v参数将本地备份目录挂载到容器内的SQL Server数据目录,新容器会直接加载原有数据库文件。

4. 验证容器状态

检查容器是否正常启动:

docker ps

若容器状态显示Up,即可用SQL客户端连接验证数据库是否正常访问。

注意事项

  • 避免使用latest标签的SQL Server镜像,默认会拉取评估版,建议直接指定2022-developer这类带明确授权版本的镜像。
  • 不要尝试用旧评估版镜像重新创建容器,镜像层面的授权限制无法通过环境变量突破。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 08:45:32