在Azure上的Ubuntu Docker运行sql Server
备注:Blog具有时效性, 内容随着更新会发现变化,时间是2017年5月22日
这是非常非常难于想象和相信的事情,前几天我写了sql Server 运行在Linux上。然后同事告诉我,你顺便搞下sql 运行在Docker里面啊,我不愿相信还可以运行在Docker之上,于是就开始测试。然后发现sql Server 不仅可以运行在Linux的Docker 还可以运行在 Windows Server的 container 。并且还可以运行在MAC的Docker,也就是说只要是Docker 引擎1.8+之上,不管你跑在什么系统上,都可以运行。
呃,我只有冷静,冷静想想到底发生了什么…….
只要是Docker满足:
- Docker Engine 1.8+
- Minimum of 4 GB of disk space
- Minimum of 4 GB of RAM
这就可以运行,运行的Image mssql-server-linux container image
下面我们就来体验下这个神奇的事情!
首先我在Azure之上创建了一台Ubuntu16.04的虚拟机。
测试需要远程连接数据库,将1430~1433防火墙打开
在Linux中将Docker部署好,这个过程就不讲了。安装完成 运行 docker命令,有如下界面就证明成功了
从Docker Hub拿到sql Server container image,镜像
docker pull microsoft/mssql-server-linux
由于镜像有点大,还是花了不少时间,如图有1.382G
镜像下载完成后,见证奇迹的时刻就要发生了。运行docker run,
命令中 ‘ACCEPT_EULA=Y’ 是接受授权协议的意思,SA_PASSWORD=p@ssw0rd这是sa的密码,-p 1430:1433,这是使用1430端口。docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=p@ssw0rd' -p 1430:1433 -d microsoft/mssql-server-linux docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=p@ssw0rd' -p 1431:1433 -d microsoft/mssql-server-linux docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=p@ssw0rd' -p 1432:1433 -d microsoft/mssql-server-linux docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=p@ssw0rd' -p 1433:1433 -d microsoft/mssql-server-linux
这样我就创建了4个sql Server,5秒钟不到的时间。
8. 连接试试,使用SSMS连接。分别连接1430,1431,1432,1433端口,四个实例就连接成功了。
总结
利用Docker方法,可快速实现sql 部署,这个确实很赞了。可以想象以后进行测试,进行一些应用的部署,只需要敲几行代码,几秒钟就部署完成。这个确实今非昔比啊。具体运行在Docker的sql有什么用的功能,等正式发布之后,一定会有相应的文档详细介绍。这次测试主要测试如何运行在Docker。还有很多可以玩的东西,很有意思了,以后慢慢的进行测试。
作者简介: Max Shen(阿特) 微软解决方案专家,系统运维工程师,数据库工程师;IT从业20年经验,最早接触和进行云计算工作的工程师之一,在云计算领域具有丰富的工作经验。熟悉Windows 、sql Server数据库、虚拟化等技术,拥有多年企业IT运维和数据库运维管理实战经验;熟悉微软云架构、企业云服务解决方案,拥有微软Azure、O365等相关认证。