Docker配置MSSQL
硬件及环境要求
- 要求至少2G 硬盘空间
- 要求至少2G RAM,实际上阿里云2G服务器刚好不够用
- 要求 Docker Engine 1.8+
- 最少 8 个字符,包括大写和小写字母、十进制数字和/或非字母数字符号
创建文件夹用于挂载数据卷
因为我选择的挂载文件路径为/home/mssql
,所以以下操作均以/home/mssql
为例。
cd /home
mkdir mssql
chmod -R 777 mssql
需要在创建文件夹之后对文件夹授权,否则mssql容器无法正常运行,查看日志可以发现是访问权限问题。
关于挂载权限设置,详细可参照官方文档:
https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-configure-docker?view=sql-server-ver15
下载运行mssql-server-linux镜像
docker run \
-e "ACCEPT_EULA=Y" \
-e "SA_PASSWORD=123456" \
-p 1433:1433 \
-e 'TZ=Asia/Shanghai' \
-v /home/mssql/data:/var/opt/mssql/data \
-v /home/mssql/log:/var/opt/mssql/log \
-v /home/mssql/secrets:/var/opt/mssql/secrets \
--restart=always \
--name mssql \
-d mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04
docker run --name=mssql \
--hostname=b2efc60dc3b5 --user=root \
--env=SA_PASSWORD=123456 --env=TZ=Asia/Shanghai \
--env=ACCEPT_EULA=Y \
--env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
--volume=/home/mssql/secrets:/var/opt/mssql/secrets \
--volume=/mnt/mssql/backup:/var/opt/mssql/backup \
--volume=/home/mssql/data:/var/opt/mssql/data \
--volume=/home/mssql/log:/var/opt/mssql/log \
-p 1433:1433 --restart=always \
--label='vendor=Microsoft' --label='com.microsoft.product=Microsoft SQL Server' \
--label='com.microsoft.version=15.0.2000.5' \
--detach=true mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04 \
/opt/mssql/bin/sqlservr
其中-e 'TZ=Asia/Shanghai'
是为了配置时区。
使用容器内的sqlcmd测试
docker exec -it sqlserver /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 123456
本地安装sqlcmd测试
下载安装sqlcmd
wget https://packages.microsoft.com/config/rhel/7/prod.repo
mv prod.repo /etc/yum.repos.d/
yum makecache
yum install mssql-tools
测试连接
sqlcmd -S localhost -U SA -P 123456
修改数据库占用
在没有修改SqlServer
最大服务器内存
的情况下,SqlServer会尽可能多的占用系统内存。在内存较小的服务器上运行SqlServer,可能出现服务器内存居高不下的情况,所以建议一开始先配置SqlServer的最大服务器内存。 配置操作如下图