演示丨通过 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 ,而不是像以往那样拼命的往电脑中安装各种软件。


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


前期准备


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


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


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


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


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


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



运行容器


接下来,您需要运行它。为此,您需要接受许可协议,并为管理员帐户指定一个安全的密码。如果您想要开发者版本以外的东西,那么您也可以指定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身份验证进行连接。


关于端口映射的注意


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


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


一、通过PowerShell进行查询


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


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


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



1> SELECT @@VERSION 


2> GO 


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


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

二、使用SSMS 2017进行查询


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


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



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


三、使用LINQPad 进行查询


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


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



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



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


总  结


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



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



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

 


点击下方“阅读全文”,了解详情

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值