引言
在當今快速迭代的軟件開發環境中,容器化技術已成為數據庫部署的主流選擇。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 編輯過