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/系统后,重新挂载该目录即可恢复所有数据。

相关推荐
小小代码狗1 小时前
Windows 权限提升技术详解
windows·网络安全
荔枝吻1 小时前
【保姆级喂饭教程】 Windows下WSL2+Docker+Qdrant安装教程
windows·docker·wsl2·qdrant
fengjianhua12251 小时前
C盘清理工具哪个操作最简单?
windows
java_logo1 小时前
Docker 部署 TypeWords:轻松搭建英语单词与文章练习平台
运维·docker·容器·轩辕镜像·typewords·英语单词练习·四级单词练习
程序员老赵1 小时前
Docker 部署 Calibre-Web:轻松搭建网页版电子书管理平台
docker·开源·电子书
平常心的技术小牛1 小时前
Qt-快速上手-QFileDialog
windows·qt·microsoft
请你吃div1 小时前
Electron 从零开始的新手开发教程
vue.js·windows·electron
影寂ldy2 小时前
C# WinForm TCP聊天室(服务端+客户端)
windows·tcp/ip·c#
无望__wsk2 小时前
k8s控制器
java·docker·kubernetes