当前位置: 首页 > 工具软件 > mssql-docker > 使用案例 >

使用Docker快速搭建MSSQL实验环境 (持久化)

丁俊智
2023-12-01

使用Docker快速搭建MSSQL实验环境(持久化)

前置章节
CentOS 快速安装Docker
使用Docker快速搭建MSSQL实验环境

拉取镜像

docker pull mcr.microsoft.com/mssql/server:2019-latest

准备持久化目录,准备挂在进目录卷的内容

mkdir -p mssql/sql1data
cd mssql
# docker create 容器,创建并不启动,用户拷贝出需要的文件
docker create -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=93i7f5^#Wpe98G6$" \
   -p 1433:1433 --name sql1 -h sql1 \
   mcr.microsoft.com/mssql/server:2019-latest
   
# 拷贝数据目录
docker cp sql1:/var/opt/mssql sql1data

# 修改访问权限,否则挂载到容器内部后会启动失败
chown  -R 10001:0 sql1data

# 删除初始化容器
docker rm sql1

挂载目录并重新运行容器

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=93i7f5^#Wpe98G6$" \
   --restart=always \
   -p 1433:1433 --name sql1 -h sql1 \
   -v sql1data:/var/opt/mssql \
   -d mcr.microsoft.com/mssql/server:2019-latest

备注

密码应符合 SQL Server 默认密码策略,否则容器无法设置 SQL Server,将停止工作。 默认情况下,密码的长度必须至少为 8 个字符,并且必须包含以下四种字符中的三种:大写字母、小写字母、十进制数字和符号。 你可以通过执行 docker logs 命令检查错误日志。

默认情况下,这会创建一个使用 SQL Server 2019 开发人员版的容器。

查看容器运行状态

docker ps | grep sql1

进入容器

docker exec -it sql1 bash

测试连接

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "93i7f5^#Wpe98G6$"

更改 SA 密码

创建 SQL Server 容器后,通过在容器中运行 echo $SA_PASSWORD,可发现指定的 SA_PASSWORD 环境变量。 出于安全考虑,需要更改 SA 密码。进入容器运行 sqlcmd,然后根据提示输入旧密码和新密码

docker exec -it sql1 bash

/opt/mssql-tools/bin/sqlcmd \
-S localhost -U SA \
-P "$(read -sp "Enter current SA password: "; echo "${REPLY}")" \
-Q "ALTER LOGIN SA WITH PASSWORD=\"$(read -sp "Enter new SA password: "; echo "${REPLY}")\""
X5oLUJQR5ApRN6KDWZX
X5oLUJQR5ApRN6KDWZX

测试新密码是否正确测

docker exec -it sql1 bash

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewStrong@Passw0rd>"
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "PytGcKOoXw54r0l812S6"

使用Sqlcmd连接到数据库

  1. 下载 Microsoft ODBC Driver 17 for SQL Server 依赖并安装
  2. 下载 sqlcmd并安装

测试连接数据

sqlcmd -S <ip_address>,1433 -U SA -P "<YourNewStrong@Passw0rd>"

参考

[1]. 使用 Docker 运行 SQL Server 容器映像
[2]. 在 Linux Docker 容器中还原 SQL Server 数据库

 类似资料: