引言
在當(dāng)今快速迭代的軟件開發(fā)環(huán)境中,容器化技術(shù)已成為數(shù)據(jù)庫部署的主流選擇。Docker作為容器化技術(shù)的代表,為SQL Server的部署提供了輕量級(jí)、可移植且一致的運(yùn)行環(huán)境。本文將詳細(xì)介紹如何使用Docker快速部署SQL Server 2019,幫助開發(fā)者和DBA構(gòu)建高效的開發(fā)/測試環(huán)境。
一、SQL Server容器化優(yōu)勢(shì)
1.環(huán)境一致性:消除"在我機(jī)器上能運(yùn)行"的問題
2.快速部署:幾分鐘內(nèi)完成數(shù)據(jù)庫環(huán)境搭建
3.資源隔離:獨(dú)立環(huán)境不影響主機(jī)其他服務(wù)
4.版本管理:輕松切換不同SQL Server版本
5.成本效益:無需專用Windows服務(wù)器授權(quán)
二、部署前準(zhǔn)備
三、詳細(xì)部署步驟
1. 獲取官方鏡像
Microsoft提供官方SQL Server 2019 Linux容器鏡像:
docker pull mcr.microsoft.com/mssql/server:2019-latest
如果大家會(huì)存在docker 拉取不到鏡像的情況,我已經(jīng)導(dǎo)出,放入共享資源關(guān)注公眾號(hào),回復(fù)20250723即可獲得docker save -o mssql_image.tar mcr.microsoft.com/mssql/server:2019-latest
在目標(biāo)機(jī)器執(zhí)行命令:docker load -i mssql_image.tar
2. 配置并運(yùn)行容器
基本啟動(dòng)命令:
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
生產(chǎn)環(huán)境推薦配置:
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. 驗(yàn)證部署
檢查容器狀態(tài):
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
驅(qū)動(dòng)程序要選擇ODBC Driver 18 for SQL Server
五、高級(jí)配置
1. 持久化數(shù)據(jù)存儲(chǔ)
# 創(chuàng)建數(shù)據(jù)目錄
mkdir -p /docker/mssql/{data,log,backup}
# 運(yùn)行容器時(shí)掛載卷
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. 時(shí)區(qū)配置
docker run ... \
-e "TZ=Asia/Shanghai" \
...
3. 性能優(yōu)化配置
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" \
...
結(jié)語
通過Docker部署SQL Server 2019不僅簡化了環(huán)境配置過程,還為開發(fā)團(tuán)隊(duì)提供了高度一致的數(shù)據(jù)庫環(huán)境。本文介紹的方法適用于開發(fā)測試場景,生產(chǎn)環(huán)境部署還需考慮高可用、監(jiān)控和備份等額外因素。容器化技術(shù)正在改變數(shù)據(jù)庫管理的方式,掌握這些技能將使您在現(xiàn)代化數(shù)據(jù)平臺(tái)管理中占據(jù)優(yōu)勢(shì)。
該文章在 2025/7/23 11:59:28 編輯過