Docker 是一个基于Linux 64bit的开源的应用容器引擎……
《Docker布署SQL Server数据库》一文刊发于《网络安全和信息化》2019年第7期。
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 成功连接
我们可以运行SQL命令:
1> SELECT name from sys.databases
2> GO
即可显示命令运行结果。
图2 运行SQL命令
四、 在Windows中的SQL Server控制台中连接SQL Server数据库
按下图所示,填写连接参数即可进行正常连接。一定要注意服务器名称,写入的IP地址后面一定要加入端口号,如1401,而且端口号与IP地址间必须用英文逗号隔开。
图3 控制台连接
图4 控制台连接成功