演示丨通过 Docker 实现在 Linux 容器中运行 Microsoft SQL Server 数据库

演示丨通过 Docker 实现在 Linux 容器中运行 Microsoft SQL Server 数据库


出品丨Docker公司(ID:docker-cn)

编译丨小东

每周一、三、五晚6点10分  与您不见不散


说在前面


今天我将继续为大家带来有关Docker 的系列教程,这篇文章主要是帮助大家了解如何在Linux容器中使用Microsoft SQL Server (PS:这个教程简单易懂,一学即会)。一旦您完成了整个教程,您就可以从docker容器外部(我将为您演示使用PowerShell、SQL Server Management Studio(SSMS)和LINQPad三种方式)对您的数据库运行一个简单的查询。

演示丨通过 Docker 实现在 Linux 容器中运行 Microsoft SQL Server 数据库


背  景


最近我买了一台普通的笔记本电脑,它并没有很强大的性能(这次我将重点放在了便携性和电池的寿命上)。由于这样那样的原因,我觉得这是一个很好的机会,让我可以花更多的时间来关注Docker ,而不是像以往那样拼命的往电脑中安装各种软件。


我认为使用Docker 的好处之一就是软件开发人员可以在Docker 中进行合理的设置,他们可以省去原先在本地安装的所有麻烦从而轻松地得到一个本地的SQL Server实例。由于我使用的是Windows 系统的笔记本电脑,所以我选择了Docker for Windows 。但是实际上Docker 是可以跨平台使用的,所以如果您使用的是Mac或Linux机器,您仍然可以遵循这篇教程,这是不是很棒呢!

演示丨通过 Docker 实现在 Linux 容器中运行 Microsoft SQL Server 数据库


前期准备


如果您尚未安装Docker,那么您可以参考之前的文章,我就不在这里赘述了,如果您遇到任何问题,都可以在文尾处留言,我会在第一时间帮您解答。


启动Docker ,您需要从Docker Hub中下载最新的MS SQL Server镜像。


现在打开PowerShell窗口(Win+X或I,不需要管理员模式)来进行以下步骤:


首先,我们需要输入以下命令来下载镜像(解压完成后大约1.35GB)。


docker pull microsoft/mssql-server-linux:2017-latest


然后我们可以运行“docker images”来进行确认。


演示丨通过 Docker 实现在 Linux 容器中运行 Microsoft SQL Server 数据库

演示丨通过 Docker 实现在 Linux 容器中运行 Microsoft SQL Server 数据库


运行容器


接下来,您需要运行它。为此,您需要接受许可协议,并为管理员帐户指定一个安全的密码。如果您想要开发者版本以外的东西,那么您也可以指定PID。还有很多其他的环境变量供您进行设置,您可以参考https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-configure-environment-variables(例如您可以通过MSSQL_TCP_PORT = nnnn来更改内部的1433端口)


docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Str0ngPassword!' -p 1401:1433 -d --name=tomssl_sql microsoft/mssql-server-linux:latest


注意:在Linux上连接到MS SQL时,您必须连接用户名和密码。您不能使用Windows身份验证进行连接。

演示丨通过 Docker 实现在 Linux 容器中运行 Microsoft SQL Server 数据库


关于端口映射的注意


端口映射是通过“-p host port:container port”进行指定的。


因此“-p 1401:1433”意味着主机(我的笔记本电脑)上的1401端口会映射到容器中的1433端口。如果您以前曾经使用过MS SQL Server,那么您可能知道它会默认监听这个1433端口。这意味着,我从容器外部创建的任何连接字符串都需要包含1401端口。

演示丨通过 Docker 实现在 Linux 容器中运行 Microsoft SQL Server 数据库


一、通过PowerShell进行查询


现在我们的容器已经在运行中了,接下来让我们运行一个简单的查询来检验一下我们的成果。在您的PowerShell窗口中,输入以下命令来运行交互式的slqcmd工具(从您的镜像中)。


docker exec -it tomssl_sql /opt/mssql-tools/bin/sqlcmd -S localhost -U sa


如图所示,进入Str0ngPassword后!输入以下两条命令:


演示丨通过 Docker 实现在 Linux 容器中运行 Microsoft SQL Server 数据库


1> SELECT @@VERSION 


2> GO 


这时,该图显示镜像正在运行,然后您就可以运行查询了。


现在就让我们离开镜像运行界面,通过尝试其他几种方式来进行查询。

演示丨通过 Docker 实现在 Linux 容器中运行 Microsoft SQL Server 数据库

二、使用SSMS 2017进行查询


如果您还没有SSMS 2017,你可以点击文尾处“阅读原文”免费下载使用。


首先,您需要连接到您的服务器。不要忘记指定端口,同时要特别注意逗号哦!例如:localhost, 1401。


演示丨通过 Docker 实现在 Linux 容器中运行 Microsoft SQL Server 数据库


现在让我们使用SSMS来运行一个非常简单的查询吧!


演示丨通过 Docker 实现在 Linux 容器中运行 Microsoft SQL Server 数据库

演示丨通过 Docker 实现在 Linux 容器中运行 Microsoft SQL Server 数据库

三、使用LINQPad 进行查询


我不知道您的使用情况,反正我已经是八年的LINQPad的忠实粉丝了。


首先,您需要连接到您的容器,和SSMS 的连接方式十分类似(同样的,不要忘记逗号)。


演示丨通过 Docker 实现在 Linux 容器中运行 Microsoft SQL Server 数据库


然后选择 “Language: SQL” 并运行查询。


演示丨通过 Docker 实现在 Linux 容器中运行 Microsoft SQL Server 数据库


就是这样。很容易,不是吗?

演示丨通过 Docker 实现在 Linux 容器中运行 Microsoft SQL Server 数据库


总  结


正如您所看到的,使用Docker在Linux上运行MS SQL Server是非常容易的一件事。在本文中,我们在Linux上下载并运行了最新版本的MS SQL Server,并演示了使用PowerShell、SQL Server Management Studio(SSMS)和LINQPad运行了一个非常简单的查询。如果您在尝试的过程中遇到任何问题,都可以通过在下方留言的方式来与我进行交流。


演示丨通过 Docker 实现在 Linux 容器中运行 Microsoft SQL Server 数据库


点击下列标题,阅读更多干货



如果本文对你有帮助,欢迎分享到朋友圈!获取更多Docker实用技巧,扫描下图二维码!

 演示丨通过 Docker 实现在 Linux 容器中运行 Microsoft SQL Server 数据库


演示丨通过 Docker 实现在 Linux 容器中运行 Microsoft SQL Server 数据库点击下方“阅读全文”,了解详情