Ubuntu上SQL Server容器化部署指南
sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker # 启动Docker服务
sudo systemctl enable docker # 设置开机自启
拉取SQL Server镜像
从Microsoft Docker Hub拉取官方SQL Server镜像(以2022版本为例):
sudo docker pull mcr.microsoft.com/mssql/server:2022-latest
运行SQL Server容器
使用docker run
命令启动容器,需配置以下关键参数:
ACCEPT_EULA=Y
:接受SQL Server许可协议(必填);SA_PASSWORD
:设置SA管理员密码(需符合SQL Server复杂度要求,如包含大小写字母、数字和特殊字符);-p 1433:1433
:将主机1433端口映射到容器1433端口(SQL Server默认端口);--name
:指定容器名称(如sqlserver
);-d
:以分离模式运行容器。sudo docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=YourStrong@Passw0rd' \
-p 1433:1433 --name sqlserver -d mcr.microsoft.com/mssql/server:2022-latest
数据持久化(可选但推荐)
为避免容器删除导致数据丢失,可将容器内SQL Server数据目录(/var/opt/mssql
)挂载到主机本地目录:
sudo mkdir -p /your/local/path # 主机本地目录
sudo docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=YourStrong@Passw0rd' \
-p 1433:1433 -v /your/local/path:/var/opt/mssql --name sqlserver -d mcr.microsoft.com/mssql/server:2022-latest
检查容器状态
运行以下命令确认容器是否正常运行:
sudo docker ps
若容器状态为“Up”,则表示部署成功。
连接SQL Server
可通过以下两种方式连接:
sudo docker exec -it sqlserver /bin/bash
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "YourStrong@Passw0rd"
成功连接后会显示1>
提示符,表示进入SQL命令行模式。localhost,1433
(若主机IP为远程地址,需替换为对应IP);SQL Server Authentication
;sa
;YourStrong@Passw0rd
。启用SQL Server代理
若需使用SQL Server代理(如作业调度、警报),需执行以下命令启用并重启服务:
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
sudo systemctl restart mssql-server
修改SA密码
若需更改SA密码,可通过sqlcmd登录后执行ALTER LOGIN
命令:
sudo docker exec -it sqlserver /bin/bash
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "OldPassword" \
-Q "ALTER LOGIN SA WITH PASSWORD='NewStrong@Passw0rd';"
sudo ufw allow 1433/tcp
);限制容器网络访问范围(如使用Docker网络隔离)。docker stats
命令查看容器资源占用。