文章目录
- [Windows Docker Desktop 部署 SQL Server 2022 完整安装手册](#Windows Docker Desktop 部署 SQL Server 2022 完整安装手册)
- 一、手册说明
- 二、前置环境准备
-
- [2\.1 系统与虚拟化要求](#2.1 系统与虚拟化要求)
- [2\.2 WSL2 环境初始化(首次安装必做)](#2.2 WSL2 环境初始化(首次安装必做))
- [2\.3 Docker Desktop 安装与配置](#2.3 Docker Desktop 安装与配置)
- [三、SQL Server2022 镜像高速拉取(解决原生拉取极慢问题)](#三、SQL Server2022 镜像高速拉取(解决原生拉取极慢问题))
- 四、本地真实目录挂载配置(数据持久化核心)
-
- [4\.1 挂载规则(必记)](#4.1 挂载规则(必记))
- [4\.2 前置准备](#4.2 前置准备)
- [4\.3 挂载写法规范](#4.3 挂载写法规范)
-
- [CMD/PowerShell 命令行写法](#CMD/PowerShell 命令行写法)
- [docker\-compose\.yml 写法(规避转义报错)](#docker-compose.yml 写法(规避转义报错))
- 五、容器启动部署命令
-
- [5\.1 CMD 单行启动命令(直接复制运行)](#5.1 CMD 单行启动命令(直接复制运行))
- [5\.2 命令参数详解](#5.2 命令参数详解)
- [5\.3 完整 docker\-compose\.yml 配置(推荐长期使用)](#5.3 完整 docker-compose.yml 配置(推荐长期使用))
- 六、部署校验与连接测试
-
- [6\.1 容器状态校验](#6.1 容器状态校验)
- [6\.2 数据库连接参数(SSMS/DBeaver/项目使用)](#6.2 数据库连接参数(SSMS/DBeaver/项目使用))
- 七、Docker挂载两种模式区别
-
- [7\.1 绑定挂载(本手册使用方案)](#7.1 绑定挂载(本手册使用方案))
- [7\.2 匿名卷挂载(不推荐)](#7.2 匿名卷挂载(不推荐))
- 八、高频踩坑与排错方案
- 九、日常运维常用命令
- 十、数据备份建议
Windows Docker Desktop 部署 SQL Server 2022 完整安装手册
一、手册说明
本手册适用于 **Windows10/11 + Docker Desktop(WSL2 后端)**环境,从零完成 SQL Server 2022 容器化部署,包含环境校验、镜像加速、本地目录挂载、启动运行、数据库连接、日常运维、高频报错排错全流程,适配开发环境长期使用。
核心特性:数据持久化到Windows真实本地路径、镜像高速拉取、开箱即用、稳定不丢数据。
二、前置环境准备
2.1 系统与虚拟化要求
-
系统版本:Windows10 21H2+ / Windows11 正式版
-
必须开启CPU虚拟化:任务管理器 → 性能 → CPU,确认虚拟化:已启用
-
默认使用 WSL2 引擎(Docker Desktop 推荐方案,兼容性、性能优于 Hyper-V)
2.2 WSL2 环境初始化(首次安装必做)
以管理员身份打开 PowerShell,执行命令安装默认 WSL2 环境:
powershell
wsl --install -d Ubuntu-22.04
wsl --set-default-version 2
执行完成后重启电脑,确保 WSL2 内核正常生效。
2.3 Docker Desktop 安装与配置
1、安装 Docker Desktop,安装时勾选Use WSL 2 based engine
2、启动 Docker Desktop,进入设置配置国内镜像加速器(仅加速 DockerHub 镜像)
路径:Settings → Docker Engine,替换全部配置:
json
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.xuanyuan.me"
]
}
3、点击 Apply & Restart 重启 Docker 生效
⚠️ 重要说明:以上加速器不生效于 mcr.microsoft.com 微软镜像,SQL Server 镜像需使用专属中转源加速。
三、SQL Server2022 镜像高速拉取(解决原生拉取极慢问题)
原生微软镜像源国内下载速度极低,统一使用华为云中转镜像,全程高速无卡顿,执行以下 CMD 命令:
cmd
:: 高速拉取中转镜像
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/mcr.microsoft.com/mssql/server:2022-latest
:: 重命名为官方镜像名(关键,适配所有启动命令/配置文件)
docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/mcr.microsoft.com/mssql/server:2022-latest mcr.microsoft.com/mssql/server:2022-latest
:: 清理中转镜像,释放磁盘空间
docker rmi swr.cn-north-4.myhuaweicloud.com/ddn-k8s/mssql/server:2022-latest
校验:执行 docker images,能看到 mcr.microsoft.com/mssql/server:2022-latest 即为成功。
四、本地真实目录挂载配置(数据持久化核心)
4.1 挂载规则(必记)
挂载语法:-v 宿主机Windows路径:容器内Linux路径
-
左侧(宿主机):Windows 路径,使用反斜杠
\ -
右侧(容器):固定 Linux 路径,必须正斜杠
/ -
核心优势:删除容器、重启电脑,数据库数据永久保存在本地文件夹
4.2 前置准备
手动新建本地文件夹:D:\mssql\data,文件夹必须提前创建,否则容器启动失败。
避坑:禁止中文、空格、特殊字符路径,优先使用D盘,规避C盘权限报错。
4.3 挂载写法规范
CMD/PowerShell 命令行写法
cmd
-v D:\mssql\data:/var/opt/mssql/data
docker-compose.yml 写法(规避转义报错)
yaml
volumes:
- "D:/mssql/data:/var/opt/mssql/data"
⚠️ YAML 文件禁止使用 D:\ 反斜杠,会被识别为转义字符,必须用正斜杠。
五、容器启动部署命令
5.1 CMD 单行启动命令(直接复制运行)
cmd
docker run -d --name mssql2022 -p 1433:1433 -e ACCEPT_EULA=Y -e MSSQL_SA_PASSWORD=Admin@123456 -v D:\mssql\data:/var/opt/mssql/data mcr.microsoft.com/mssql/server:2022-latest
5.2 命令参数详解
-
-d:后台守护进程运行,不阻塞终端 -
--name mssql2022:容器自定义名称,便于运维管理 -
-p 1433:1433:端口映射,外部访问1433端口对应容器数据库端口 -
ACCEPT_EULA=Y:同意微软SQL Server授权协议(必填) -
MSSQL_SA_PASSWORD:SA管理员密码,必须满足复杂度(大小写+数字+符号) -
-v:本地目录挂载,实现数据持久化
5.3 完整 docker-compose.yml 配置(推荐长期使用)
yaml
version: '3.8'
services:
mssql:
image: mcr.microsoft.com/mssql/server:2022-latest
container_name: mssql2022
ports:
- "1433:1433"
environment:
ACCEPT_EULA: "Y"
MSSQL_SA_PASSWORD: "Admin@123456"
volumes:
- "D:/mssql/data:/var/opt/mssql/data"
restart: always
启动命令:在配置文件目录执行 docker-compose up -d
六、部署校验与连接测试
6.1 容器状态校验
cmd
:: 查看运行中的容器
docker ps
:: 查看容器启动日志(报错必查)
docker logs mssql2022
:: 校验挂载目录是否生效
docker exec -it mssql2022 ls /var/opt/mssql/data
6.2 数据库连接参数(SSMS/DBeaver/项目使用)
-
服务器地址:
127.0.0.1,1433(WSL2环境禁止使用localhost,极易连接失败) -
登录账号:
sa -
登录密码:
Admin@123456(可自行修改) -
身份验证:SQL Server 身份验证
七、Docker挂载两种模式区别
7.1 绑定挂载(本手册使用方案)
命令:-v D:\mssql\data:/var/opt/mssql/data
特点:数据直接存储在Windows本地真实目录,宿主机可直接查看、备份、修改文件,删除容器数据不丢失,适合开发、生产长期使用。
7.2 匿名卷挂载(不推荐)
命令:-v /var/opt/mssql/data
特点:数据存储在Docker内部虚拟目录,用户无法直接查看,删除容器会永久丢失数据,仅适合临时测试。
八、高频踩坑与排错方案
-
容器一闪退出、启动失败
原因:本地挂载文件夹未创建、路径错误、密码复杂度不足
解决:手动新建
D:\mssql\data,核对路径格式,密码必须包含大小写、数字、符号 -
1433端口被占用
排查:
netstat -ano | findstr 1433解决:修改端口映射为
-p 1434:1433 -
localhost连接失败
解决:统一使用
127.0.0.1,1433连接 -
C盘挂载权限报错
解决:优先使用D盘目录,避免C盘权限限制
-
镜像拉取缓慢
解决:禁止直接pull官方mcr镜像,必须使用本手册华为云中转方案
九、日常运维常用命令
cmd
:: 停止容器
docker stop mssql2022
:: 启动容器
docker start mssql2022
:: 重启容器
docker restart mssql2022
:: 删除容器(数据保留,不删除本地挂载文件)
docker rm mssql2022
十、数据备份建议
所有数据库数据持久化存储在 D:\mssql\data,日常可直接复制该文件夹备份,无需复杂导出命令,重装Docker/系统后,重新挂载该目录即可恢复所有数据。