使用Docker运行Microsoft SQL Server 2017的方法
最近每天都在空闲时间努力编写Apworks框架的案例代码WeText。在文本发布和处理微服务中,我打算使用微软的SQL Server for Linux来做演示,于是也就在自己的docker-compose中加入了MS SQL Server的服务。其实在Docker中运行SQL Server是非常容易的,今天大概做个介绍吧。
启动Microsoft SQL Server 2017容器
下面是我目前WeText案例中用于搭建基础结构服务的docker-compose.yml文件(该文件将来还会变动,最新版本请参阅Github):
version: "3" services: mongodb: image: mongo volumes: - ${MONGODB_DATABASE_VOLUME} container_name: mongodb ports: - "27017:27017" rabbit: image: rabbitmq:3-management ports: - "5672:5672" - "4369:4369" - "5671:5671" - "25672:25672" - "15672:15672" container_name: rabbitmq hostname: my-rabbitmq volumes: - ${RABBITMQ_DATA_VOLUME} postgres: image: postgres ports: - "5432:5432" container_name: postgres volumes: - ${POSTGRESQL_DATA_VOLUME} mssql: image: microsoft/mssql-server-linux:2017-latest ports: - "1433:1433" container_name: mssql environment: - ACCEPT_EULA=Y - SA_PASSWORD=G1veMeP@ss
这个docker-compose文件中包含了四个服务的定义,今天我们只关注最后一个,也就是mssql。可以看到:
1.Microsoft SQL Server的Docker镜像名为:microsoft/mssql-server-linux,tag为2017-latest
2.SQL Server在容器内侦听1433端口,也就是标准的SQL Server端口
3.启动SQL Server容器需要两个环境变量:ACCEPT_EULA=Y,表示接受最终用户许可协议;SA_PASSWORD=G1veMeP@ss,表示设置sa用户的密码。这个用户密码要符合强密码规范(数字、字母、大小写,至少8个字符),之后在客户端连接的时候,就需要使用这个密码登录服务器
当然,你可以不使用docker-compose,而是直接使用docker run,那么方法也是类似的,比如可以使用下面的语句:
sudo docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=G1veMeP@ss' \ -p 1433:1433 --name mssql \ -d microsoft/mssql-server-linux:2017-latest
同样也可以启动SQL Server容器。在Docker中运行SQL Server时,需要注意:
1.主机(host machine)的内存至少需要3.5GB左右
2.Docker中的SQL Server是开发者版本(Developer Edition),功能与企业版相同,但是仅能用于开发或者测试环境,不得用于生产环境
连接SQL Server 2017
官方文档介绍使用docker exec命令,在已运行的SQL Server 2017容器中,执行sqlcmd命令进行连接和数据库使用。当然,也可以使用图形化的客户端,比如SQL Server Management Studio或者Visual Studio的Server Explorer来连接运行于Docker中的SQL Server 2017,方法与连接普通版本SQL Server的方法一样。例如,下面是在Visual Studio的Server Explorer中连接Microsoft SQL Server on Linux for Docker的效果:
参考文档
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- 使用Docker运行Microsoft SQL Server 2017
- 如何使用 ISA Server 2004 来发布运行 Microsoft SQL Server 2000
- com.microsoft.sqlserver.jdbc.SQLServerException: 不允许从数据类型 varbinary 到 date 的隐式转换。请使用 CONVERT 函数来运行此
- com.microsoft.sqlserver.jdbc.SQLServerException: 此查询使用的不是 ANSI 外部联接运算符("*=" 或 "=*")。若要不进行修改即运行此查询,请使用存储过程 sp_dbcmptlevel 将当前数据库的
- 使用JNDI配置数据池问题Cannot create JDBC driver of class 'com.microsoft.sqlserver.jdbc.SQLServerDriver' f解决方法
- Microsoft SQL Server Migration Assistant 2005 for MySQL使用方法
- 演示丨通过 Docker 实现在 Linux 容器中运行 Microsoft SQL Server 数据库
- com.microsoft.sqlserver.jdbc.SQLServerException: 使用 DBComms.receive 方法期间发生异常。
- Microsoft SQL Server 2000 Driver for JDBC在MyEclipse中的使用方法
- 在JBuilder中使用com.microsoft.jdbc.sqlserver.SQLServerDriver连接sql数据库
- Microsoft SQLServer安装出现“挂起”现象解决方法
- Delphi使用BDE连接远程MS SQL SERVER 2000数据库时出现“Db-library network communciations layer not loaded.”错误的解决方法
- 使用 Microsoft SQL Server 2000 各种版本或组件而必须安装的操作系统
- [转]在Microsoft SQL Server 2000 数据仓库中使用分区
- 转贴:使用 Microsoft SQL Server 2000 的全文搜索功能构建 Web 搜索应用程序
- Delphi使用BDE连接远程MS SQL SERVER 2000数据库时出现“Db-library network communciations layer not loaded.”错误的解决方法
- 访问 Microsoft SQL Server 元数据的三种方法
- Delphi使用BDE连接远程MS SQL SERVER 2000数据库时出现“Db-library network communciations layer not loaded.”错误的解决方法
- MS SQL Server 2000版在windows server 2003企业版系统上运行时造成数据库suspect的解决方法
- microsoft sqlserver 2000查询版本号的方法