在 Windows 11 家庭版上使用 Docker Desktop 容器化安装 SQL Server 数据库是一个相对直接的过程。以下是详细步骤:
### 前提条件
1. "安装 Docker Desktop":确保你已经安装了 Docker Desktop for Windows。你可以从 [Docker 官方网站](https://www.docker.com/products/docker-desktop/) 下载并安装。
2. "下载 SQL Server Docker 镜像":你需要下载 SQL Server 的 Docker 镜像。
### 步骤
#### 1. 打开 Docker Desktop
启动 Docker Desktop 并确保它正在运行。
#### 2. 打开 PowerShell 或命令提示符
你可以使用 PowerShell 或命令提示符来运行 Docker 命令。建议使用 PowerShell,因为它提供了更好的脚本支持和错误处理。
#### 3. 拉取 SQL Server Docker 镜像
使用以下命令拉取 SQL Server Docker 镜像。这里以 SQL Server 2019 为例:
```powershell
docker pull mcr.microsoft.com/mssql/server:2019-latest
```
#### 4. 运行 SQL Server 容器
使用以下命令运行 SQL Server 容器。你需要设置一些环境变量和卷来持久化数据:
```powershell
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=YourStrongPassword!" -p 1433:1433 --name sqlserver -d mcr.microsoft.com
相关内容:
前提条件:先安装dockerDesktop
说明:这次是基于win11的家庭版上的dockerDesktop容器化安装sqlserver 2017数据库
一、拉取 SQL Server Docker 镜像
打开命令行工具cmd(或powershell),然后执行以下命令来拉取的SQL Server镜像:
docker pull mcr.microsoft.com/mssql/server:2017-latest
这将从Docker Hub下载Microsoft提供的官方SQL Server镜像。
查看拉取成功的镜像:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mcr.microsoft.com/mssql/server 2017-latest fedcf1ecc92e 7 weeks ago 1.33GB
说明:如果拉取镜像出现如下错误:
Error response from daemon: Get "https://index.docker.io/v1/search?q=sqlserver&n=25": dialing index.docker.io:443 container via direct connection because static system has no HTTPS proxy:
说明 Docker 守护进程无法连接到 Docker Hub(index.docker.io),通常是由于 网络连接问题 导致的,尤其是在中国大陆地区,由于网络环境限制,访问 Docker Hub 可能不稳定或被阻断。
解决方案
✅ 配置 Docker 镜像加速器
这是在中国大陆使用 Docker 最有效、最常用的方法。
步骤 1:获取镜像加速地址
您可以使用以下任意一个国内镜像加速服务:
镜像服务提供商 | 加速地址 |
阿里云(推荐) | https://<your-id>.mirror.aliyuncs.com (需注册获取) |
中科大 | https://docker.mirrors.ustc.edu.cn |
网易 | https://hub-mirror.c.163.com |
腾讯云 | https://mirror.ccs.tencentyun.com |
推荐使用 阿里云镜像加速器,稳定且免费,注册阿里云账号后在容器镜像服务控制台获取专属加速地址。
步骤 2:配置 Docker Desktop
- 打开 Docker Desktop;
- 点击右上角的 ⚙️ Settings(设置);
- 进入 Docker Engine 选项卡;
- 在 JSON 配置中添加 "registry-mirrors" 字段,例如:
{
"registry-mirrors":
}
或使用阿里云加速器(替换为你的专属地址):
{
"registry-mirrors":
}
- 点击 Apply & Restart 保存并重启 Docker。
步骤 3:再次拉取镜像
docker pull mcr.microsoft.com/mssql/server:2017-latest
✅ 现在应该可以正常下载了。
二: 运行 SQL Server 容器
先创建本地目录如下,确保有访问权限

然后使用如下命令运行一个SQL Server容器实例。请记得替换Tanmeng#123为您自己的强密码,并确保满足SQL Server的密码复杂性要求。
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=Tanmeng#123" -p 1433:1433 -d -v /d/data/dockerData/sqlserver/data:/var/opt/mssql/data -v /d/data/dockerData/sqlserver/log:/var/opt/mssql/log -v /d/data/dockerData/sqlserver/secrets:/var/opt/mssql/secrets --name sqlserver mcr.microsoft.com/mssql/server:2017-latest
这里的关键参数解释:
- -e 'ACCEPT_EULA=Y': 表示接受SQL Server的最终用户许可协议。
- -e 'MSSQL_SA_PASSWORD=Tanmeng#123': 设置系统管理员(sa)用户的密码。
- -p 1433:1433: 将主机的1433端口映射到容器的1433端口(SQL Server默认监听端口)。
- -v /d/data/dockerData/sqlserver/data:/var/opt/mssql/data :挂载容器内目录/var/opt/mssql/data到本地/d/data/dockerData/sqlserver/data目录。主要是为了数据持久化存储。/d/data 在windows系统为d:data 目录
注意大坑:不能直接写-v
/d/data/dockerData/sqlserver:/var/opt/mssql 一个挂载代替三个挂载,这样会多挂载出一个.system 的目录,导致容器在运行几十秒或几分钟后报权限不足而停止运行。
- --name sqlserver: 给容器指定一个名称(这里命名为sqlserver)。
- -d: 后台运行容器。
- --restart=always: docker服务重启后容器能自动重启(我这次每加该参数,需要的可自行加上)。
三: 验证安装
要验证SQL Server是否已成功启动并在运行,可以使用以下命令查看正在运行的所有容器列表:
docker ps
你应该能看到名为sqlserverinstance的状态为“Up”的容器。
截屏如下:
命令两行截屏

dockerdesktopUI上截屏

通过以上步骤,您就可以在Docker环境中成功安装并运行SQL Server数据库了。接下来,您可以使用任何支持连接SQL Server的客户端工具(如SQL Server Management Studio, Azure Data Studio, visual studio code等)连接到您的SQL Server实例,开始管理数据库。默认情况下,您可以使用localhost作为服务器名进行连接。如果是在远程访问,则需要替换为实际的服务器IP地址。