现在. net core 已经跨平台了, 大家也都用上了 Linux 用上了 docker. 跟. net 经常配套使用的 SQL SERVER 以前一直是 Windows only, 但是从 SQL Server 2017 开始已经支持运行在 docker 上, 也就说现在 SQL Serer 已经可以运行在 Linux 下了.
下面在 Ubuntu 16.4 上演示安装并使用 SQL Server 2019-CTP3.2
- SQL Server in Docker
- sudo docker pull mcr.microsoft.com/mssql/server:2019-CTP3.2-Ubuntu
使用 docker pull 命令从 docker hub 拉取 sqlserver 2019-ctp3.2 的镜像
- sudo mkdir /hd2/sqlserver2019_data
- sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=dev@123," -p 14330:1433 --name sqlserver2019 -v /hd2/sqlserver2019_data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-CTP3.2-Ubuntu
使用 docker run 命令启动容器, 其中要注意的是使用 - v 参数指定了 sqlserver2019_data 目录挂载到容器的 / var/opt/mssql 目录, 这个目录是用来存储数据库文件的, 所以最好挂载到外容器外部, 避免因为不小心删除容器而丢失数据
sudo docker ps -a
使用 docker ps 命令查看容器运行情况, 可以看到 sqlserver2019 正在运行
使用命令行连接 SQL Server
sudo docker exec -it sqlserver2019 "bash"
使用 docker exec 命令登录到容器内部执行命令
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "dev@123,"
在容器内部执行命令, 打开 sqlcmd
打开 sqlcmd 之后我们就可以进行一些数据库的操作了, 比如创建数据库, 创建表, 查询数据等.
- CREATE DATABASE TEST_DB
- GO
- USE TEST_DB
- GO
- CREATE TABLE Table1 (ID INT, NAME NVARCHAR(50))
- GO
- Insert Into Table1 Values (0, 'agile')
创建 TEST_DB 数据库; 创建表 Table1; 插入一行数据; 查询表数据
我们使用 docker 运行的 SQL Server 同样可以使用 Sql Server Management Studio 来管理.
使用服务器 ip 加端口连接成功后, 可以看到刚才新建的数据库 TEST_DB 跟表 TABLE1 还有里面的数据都在. 能使用 SSMS 管理后就简单多了跟使用 SQL Server 其他版本没啥区别.
至此 SQL Server in Docker 的基本操作演示的差不多了, 还有更多的高级功能比如配置故障转移集群, 复制订阅, Always On 等功能跟 Windows 环境配置还有点区别大家可以自己尝试一下.
来源: https://www.cnblogs.com/kklldog/p/sqlsever_in_docker.html