使用Docker快速搭建MSSQL实验环境 (持久化)
使用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 个字符,并且必须包含以下四种字符中的三种:大写字母、小写字母、十进制数字和符号。 你可以通过执行 命令检查错误日志。 默认情况下,这会创建一个使用 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连接到数据库
- 下载 依赖并安装
- 下载 并安装
测试连接数据
sqlcmd -S <ip_address>,1433 -U SA -P "<YourNewStrong@Passw0rd>"
参考
[1]. [2].