内容根据微软官方文档,经过测验,顺序执行即可使用docker运行sql server2022
需要正确配置docker(可以成功pull操作),如果没有配置看我先前的文章(在我主页搜索“docker”)
因为只有ubuntu18.04才可以直接在系统中下载sql server,所以想要在系统中使用sql server需要使用docker,微软文档也是这么写的。
请求并运行 SQL Server Linux 容器映像
docker pull mcr.microsoft.com/mssql/server:2022-latest
运行容器
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=Admin123" \
-p 1433:1433 --name sql1 --hostname sql1 \
-d \
mcr.microsoft.com/mssql/server:2022-latest
查看容器列表
docker ps -a
最佳做法是将 sa 帐户禁用
这里说首次登录使用sa登录,然后把sa禁用,具体操作看文档
https://learn.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-docker?view=sql-server-ver16&tabs=cli&pivots=cs1-bash#disable-the-sa-account-as-a-best-practice
连接到 SQL Server
进入容器内部
docker exec -it sql1 "bash"
登录sqlcmd
#官方模板:/opt/mssql-tools18/bin/sqlcmd -S localhost -U <userid> -P "<YourNewStrong@Passw0rd>"
/opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "Admin123" -C
使用sql server
这和SSMS下的查询语句可能略有不同,需要输入GO才能执行命令
SELECT name FROM sys.databases; -- 列出所有数据库名称
GO -- 提交执行
创建和查询数据
同上,与windows的图形界面下的使用略有不同,详情查看微软文档。
https://learn.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-docker?view=sql-server-ver16&tabs=cli&pivots=cs1-bash#create-and-query-data
使用GUI软件连接
端口会在docker容器start时显示,也可以通过netstat -tunlp查看
导入.MDF .LDF文件到容器
如果有些学校要求学习SQL Server但是电脑安装的又是Linux单系统,或者Linux Windows双系统懒得切换,又或者恰好有这个数据库文件需要导入的话,可以看块位置。
过程大纲
- docker run在基础配置之上增加挂载信息
- 修改文件权限,确保所有用户有rw权限
- 进入docker交互命令行
- 登录数据库
- 执行数据库EXE命令导入数据库文件数据
完整过程看这篇
因为过程有些曲折,内容就不写在这篇文章里面了,可以看我的这篇文章。
https://blog.youkuaiyun.com/Yqha1/article/details/146399419?fromshare=blogdetail&sharetype=blogdetail&sharerId=146399419&sharerefer=PC&sharesource=Yqha1&sharefrom=from_link
补充
查看所有容器
sudo docker ps -a
停止容器
sudo docker stop ad9c97e5a920
开启容器
sudo docker start ad9c97e5a920
参考
微软官方文档
https://learn.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-docker?view=sql-server-ver16&tabs=cli&pivots=cs1-bash
无法登录sqlcmd,因为安全问题
https://learn.microsoft.com/zh-cn/sql/tools/sqlcmd/sqlcmd-utility?view=sql-server-ver16&tabs=go%2Clinux&pivots=cs1-bash
docker hub
https://hub.docker.com/r/rapidfort/microsoft-sql-server-2019-ib