Windows Docker Desktop 部署 SQL Server 2022 完整安装手册

文章目录

  • [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内部虚拟目录,用户无法直接查看,删除容器会永久丢失数据,仅适合临时测试。

八、高频踩坑与排错方案

  1. 容器一闪退出、启动失败

    原因:本地挂载文件夹未创建、路径错误、密码复杂度不足

    解决:手动新建 D:\mssql\data,核对路径格式,密码必须包含大小写、数字、符号

  2. 1433端口被占用

    排查:netstat -ano | findstr 1433

    解决:修改端口映射为 -p 1434:1433

  3. localhost连接失败

    解决:统一使用 127.0.0.1,1433 连接

  4. C盘挂载权限报错

    解决:优先使用D盘目录,避免C盘权限限制

  5. 镜像拉取缓慢

    解决:禁止直接pull官方mcr镜像,必须使用本手册华为云中转方案

九、日常运维常用命令

cmd 复制代码
:: 停止容器
docker stop mssql2022

:: 启动容器
docker start mssql2022

:: 重启容器
docker restart mssql2022

:: 删除容器(数据保留,不删除本地挂载文件)
docker rm mssql2022

十、数据备份建议

所有数据库数据持久化存储在 D:\mssql\data,日常可直接复制该文件夹备份,无需复杂导出命令,重装Docker/系统后,重新挂载该目录即可恢复所有数据。

相关推荐
梦想不只是梦与想7 小时前
docker-compose.yml
docker·docker-compose·docker run
YCOSA20259 小时前
Windows11_InsiderPreview_EnterpriseVL_x64_zh-cn_29680_1000.iso 官方直链
windows
怎么没有名字注册了啊11 小时前
Windows Server 2008 R2 如何开启Aero
windows
lingchen190613 小时前
Windows CMD 的 `cd`(change directory,切换目录)命令
windows·命令模式
ITHAOGE1514 小时前
下载 | Win11 26H2 正式版发布!(ISO映像、2026年度版本、26300.9457、Windows 11)
windows·科技·微软·电脑
YCOSA202515 小时前
雨晨 Windows 11 IoT 企业版 Edge 轻装 VCDX 29680.1000
windows·物联网
笨笨努力中16 小时前
2002年Windows XP系统下载视频资源迁移云盘
windows
更深兼春远17 小时前
第2篇:Dify 部署保姆级教程:用 Docker跑起来
docker·容器·dify
l1t18 小时前
修复WSL CreateInstance/E_UNEXPECTED和 mounted read-only 错误
linux·windows·wsl
kakakahahahaha18 小时前
Windows电脑卡死恢复流程:任务管理器、Ctrl Alt Delete、explorer与DWM重启
windows·电脑·笔记本电脑·软件需求·电脑卡死