引言
在当今快速迭代的软件开发环境中,容器化技术已成为数据库部署的主流选择。Docker作为容器化技术的代表,为SQL Server的部署提供了轻量级、可移植且一致的运行环境。本文将详细介绍如何使用Docker快速部署SQL Server 2019,帮助开发者和DBA构建高效的开发/测试环境。
一、SQL Server容器化优势
1.环境一致性:消除"在我机器上能运行"的问题
2.快速部署:几分钟内完成数据库环境搭建
3.资源隔离:独立环境不影响主机其他服务
4.版本管理:轻松切换不同SQL Server版本
5.成本效益:无需专用Windows服务器授权
二、部署前准备
Docker version 26.1.4
2GB以上可用内存(推荐4GB)
10GB以上磁盘空间
x64架构CPU(暂不支持ARM架构)
三、详细部署步骤
1. 获取官方镜像
Microsoft提供官方SQL Server 2019 Linux容器镜像:
docker pull mcr.microsoft.com/mssql/server:2019-latest
如果大家会存在docker 拉取不到镜像的情况,我已经导出,放入共享资源docker save -o mssql_image.tar mcr.microsoft.com/mssql/server:2019-latest
docker load -i mssql_image.tar
2. 配置并运行容器
基本启动命令:
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Sa@123456" -e "MSSQL_OLDPWD_COMPATIBILITY=1" -p 1433:1433 --name sql2019 -d mcr.microsoft.com/mssql/server:2019-latest
命令解析
docker run \
-e "ACCEPT_EULA=Y" \
-e "SA_PASSWORD=Sa@123456" \
-e "MSSQL_OLDPWD_COMPATIBILITY=1" \
-p 1433:1433 \
--name sql2019 \
-d \
mcr.microsoft.com/mssql/server:2019-latest
生产环境推荐配置:
docker run --name prod-sql2019 \
-e "ACCEPT_EULA=Y" \
-e "MSSQL_SA_PASSWORD=Complex@Pass123" \
-e "MSSQL_PID=Developer" \
-e "MSSQL_AGENT_ENABLED=true" \
-p 14333:1433 \
-v /mssql/data:/var/opt/mssql/data \
-v /mssql/log:/var/opt/mssql/log \
-v /mssql/secrets:/var/opt/mssql/secrets \
--memory="4g" \
--cpus=2 \
--restart unless-stopped \
-d mcr.microsoft.com/mssql/server:2019-latest
3. 验证部署
检查容器状态:
docker ps -a --filter "name=sql2019"
四、工具连接
1.使用Azure Data Studio连接SQL Server 2019
下载地址
https://learn.microsoft.com/zh-cn/azure-data-studio/download-azure-data-studio?tabs=win-install%2Cwin-user-install%2Credhat-install%2Cwindows-uninstall%2Credhat-uninstall#download-azure-data-studio
2.使用navicat连接SQL Server 2019
驱动程序要选择ODBC Driver 18 for SQL Server
五、高级配置
1. 持久化数据存储
# 创建数据目录
mkdir -p /docker/mssql/{data,log,backup}
# 运行容器时挂载卷
docker run ... \
-v /docker/mssql/data:/var/opt/mssql/data \
-v /docker/mssql/log:/var/opt/mssql/log \
-v /docker/mssql/backup:/var/opt/mssql/backup \
...
2. 时区配置
docker run ... \
-e "TZ=Asia/Shanghai" \
...
3. 性能优化配置
docker run ... \
-e "MSSQL_MEMORY_LIMIT_MB=2048" \
-e "MSSQL_TCP_PORT=1433" \
-e "MSSQL_LCID=1033" \
-e "MSSQL_COLLATION=SQL_Latin1_General_CP1_CI_AS" \
...
结语
通过Docker部署SQL Server 2019不仅简化了环境配置过程,还为开发团队提供了高度一致的数据库环境。本文介绍的方法适用于开发测试场景,生产环境部署还需考虑高可用、监控和备份等额外因素。容器化技术正在改变数据库管理的方式,掌握这些技能将使您在现代化数据平台管理中占据优势。
该文章在 2025/7/23 11:59:28 编辑过