13703353520(同微信) 周一~周五, 8:00 - 20:00
QQ:25681881或25295110 邮箱:qhdzxz@163.com
易得优软件 河北•秦皇岛
  • 站群系统

    自主建站,易得优自主建站站群系统

  • 易得优餐饮库管系统

    十七年专注开发

  • 易得优智能工控

    智能工控,易得优是认真的

  • 音乐打铃播放无需电脑

    易得优音乐打铃系统无电脑版

Docker布署SQL Server数据库

    时间:2019-07-03 15:11:15     人气:3782


Docker 是一个基于Linux 64bit的开源的应用容器引擎……

《Docker布署SQL Server数据库》一文刊发于《网络安全和信息化》2019年第7期。


7.jpg


Docker 是一个基于Linux 64bit的开源的应用容器引擎,开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上来实现虚拟化。Docker不依赖于任何语言、框架或包括系统。

SQL Server是由Microsoft开发和推广的关系数据库管理系统(RDBMS),一般来讲,SQL Server运行在Windows平台上,而利用Docker我们可以在Linux系统中搭建SQL Server数据库环境,下面以Centos7为例说明搭建过程。

一、 安装Docker

  1、把yum包更新到最新

yum update

  2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

 yum install -y yum-utils device-mapper-persistent-data lvm2

  3、设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

  4、可以查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

  5、安装Docker,命令:yum install docker-ce-版本号,我选的是17.12.1.ce,如下

yum install docker-ce-17.12.1.ce

  6、启动Docker,命令:systemctl start docker,然后加入开机启动,如下

systemctl start docker

systemctl enable docker

  7、验证安装是否成功

有client和service两部分表示docker安装启动都成功。命令为:

 docker version

二、 布署SQL Server数据库

  1、从 Docker Hub 中拉出 SQL Server 2017 Linux 容器映像

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

  2、显示所有可用的镜像

 docker images

  3、运行一个镜像,也就相当于使用已有的镜像创建一个实例。

docker run -e 'ACCEPT_EULA=Y'  -e 'MSSQL_SA_PASSWORD=MSSQL_SA_PASSWORD'  -p 1444:1433   -v  /var/opt/mssql  --name sql1 -d microsoft/mssql-server-linux:2017-latest

其中ACCEPT_EULA=Y的意思是同意许可协议,必选;MSSQL_SA_PASSWORD为密码,要求是最少8位的强密码,要有大写字母,小写字母,数字以及特殊符号。

-p1401:1433 绑定端口,其中1401是主机的端口,1433是docker内部SQL server的端口,我们使用1444端口的时候会自动映射到docker内部的1433端口。

--name sql1 指定实例名,sql1即为自定义的实例名。

如:

docker run -e 'ACCEPT_EULA=Y'  -e 'MSSQL_SA_PASSWORD=QHDedu@1357'  -p 1444:1433   -v  /var/opt/mssql  --name sql1 -d microsoft/mssql-server-linux:2017-latest

附几个常用命令:

docker ps -a 查看所有容器的状态

docker start/stop id/name 启动/停止某个容器

docker attach id 进入某个容器(使用exit退出后容器也跟着停止运行)

docker exec -ti id 启动一个伪终端以交互式的方式进入某个容器(使用exit退出后容器不停止运行)

docker images 查看本地镜像

docker rm id/name 删除某个容器

docker rmi id/name 删除某个镜像

三、 在Centos7测试连接SQL Server数据库

在Centos7中我们可以使用sqlcdm进行连接。

先下载yum的repo,然后安装sqlcdm

wget https://packages.microsoft.com/config/rhel/7/prod.repo

mv prod.repo /etc/yum.repos.d/

yum makecache

yum install mssql-tools

安装完成后,即可进行连接,连接命令格式:

/opt/mssql-tools/bin/sqlcmd  -S localhost,端口 –Usa -密码

如:

/opt/mssql-tools/bin/sqlcmd  -S localhost,1444 -Usa -PQHDedu@1357

运行连接命令后,即可出现>提示符,即表示连接成功。

1.png

图1 成功连接

我们可以运行SQL命令:

1> SELECT name from sys.databases

2> GO

即可显示命令运行结果。

2.png

图2 运行SQL命令

 

四、 在Windows中的SQL Server控制台中连接SQL Server数据库

按下图所示,填写连接参数即可进行正常连接。一定要注意服务器名称,写入的IP地址后面一定要加入端口号,如1401,而且端口号与IP地址间必须用英文逗号隔开。

 

图3 控制台连接


图4 控制台连接成功