一:前言

随着不断的对Docker容器的实践和学习,越来越觉得容器的强大,把 SQL Server 数据库服务放在docker容器中,比你自己在宿主服务器上面安装配置一个SQL Server服务器是要方便和快捷很多的。

光说不练假把式,下面我们就来进行一个实践:

在Linux下用Docker容器配置 SQL Server 服务,然后用SQL Server Management Studio工具连接数据库

二:安装运行容器

安装先决条件

1,Docker 引擎 1.8+
2,Linux内核的 3.18+
3,“文件系统” XFS 或 EXT4(其他文件系统均不受支持,如 BTRFS)
4,处理器类型仅兼容 x64 ,磁盘大于6G。至少 2 GB 的 RAM。

下载镜像

$ sudo docker pull mcr.microsoft.com/mssql/server:2017-latest

运行sqlserver docker容器

$ sudo docker run -e 'ACCEPT_EULA=Y'  \
-e 'MSSQL_SA_PASSWORD=123456' \
--name qtsqlserver \
-p 1433:1433 \
-v /var/opt/mssql:/var/opt/mssql \
-d mcr.microsoft.com/mssql/server:2017-latest

命令说明:

-e 'ACCEPT_EULA=Y': 配置变量,将 ACCEPT_EULA设置为任意值,以确认接受最终用户许可协议。 SQL Server 映像的必需设置。
-e 'MSSQL_SA_PASSWORD':配置环境变量,此处变量作业为自定义SqlServer登录密码(用户名为sa)
--name :容器名
-p:配置宿主机与容器的端口映射(将主机环境中的 TCP 端口(第一个值)映射到容器中的 TCP 端口(第二个值))
-v:将主机目录作为数据卷装载,用于保存系统日志和数据库mdf等文件(很重要,这个不配置,你容器删除后所有数据库数据也就都没有了)
-d:指定容器 后台运行,如果不指定此命令,当前终端关闭或者被占用程序则会退出

如果对Docker命令不了解可以参考我之前的文章或者文章后面的参考文档

传送门:Docker数据卷与数据卷容器

查看运行容器,下图为运行成功

$ sudo docker ps -a

三:用SQL Server Management Studio(SSMS)连接SQL Server

下载安装SQL Server Management Studio

传送门:SSMS下载地址

连接服务器

连接地址格式:ip,端口号

端口号为上面启动容器时配置的主机端口号

用户名为:sa,密码为上面启动容器时配置的密码

我这里连接的时候遇到一个小坑,无法正常连接,显示的异常为:“指定的网络名不可再用”,查了半天,没有发现问题,最后发现修改容器运行命令,把宿主主机映射的1433端口改为映射3433端口然后就好了

可能我用的是云服务器,我第一次操作时先运行容器后配置安全组规则的缘故吧

四:开启SqlServer代理

我们用SQL Server Management Studio数据库管理工具连接我们数据库后会发现代理功能是禁用的,这样会使我们的数据库作业无法使用

所以我们要开启代理服务

进入SqlServer容器(Linux 上运行的SqlServer 基于Ubuntu的,所以进入容器后就相当进入了一个Ubuntu系统)

docker exec -it <容器名称或ID> "bash"

开启代理(下面这个路径不是自己自定义的路径,不要与上面的路径混淆)

/var/opt/mssql/bin/mssql-conf set sqlagent.enabled true

退出容器

exit

重启容器

docker stop <容器名称或ID>
docker start <容器名称或ID>

代理开启成功我我们再次用SQL Server Management Studio连接数据库,可以看到,代理也已经成功启动

五:总结

经过上面的步骤,用Docker容器安装配置 SQL Server 服务就已经大功告成了。不得不说Docker的强大,如果你熟练使用Docker,你会发现在服务器上面用Docker配置一个SQL Server 服务器一间非常方便快捷而且简单的事情,我们只需要:下载镜像,运行镜像,开启代理三步即可完成,完全不用像之前担心服务的系统由于环境问题或者软件版本等问题无法正常安装SQL Server 服务器。

参考文档:

微软官方文档1

微软官方文档2

Docker官方文档

Docker中文文档

Docker容器安装配置SQLServer服务(Linux)的更多相关文章

  1. Docker容器网络配置

    Docker容器网络配置 1.Linux内核实现名称空间的创建 1.1 ip netns命令 可以借助ip netns命令来完成对 Network Namespace 的各种操作.ip netns命令 ...

  2. Linux(Manjaro) - Docker - MySQL 安装配置

    Linux(Manjaro) - Docker - MySQL 安装配置 拉取mysql镜像 # 使用网易的 MySQL 镜像地址 docker pull hub.c.163.com/library/ ...

  3. 通过命令验证docker容器相当一个轻量级的Linux运行环境,且每个容器内都有一个属于自己的文件系统,容器之间相互隔离

    一.docker的三个重要概念 1.镜像:打包项目带上环境,即镜像 Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序.库.资源.配置等文件外,还包含了一些为运行时准备的配置参数.镜像 ...

  4. Docker容器安装RabbitMQ

    Docker容器安装RabbitMQ 准备资料 erlang的rpm安装包 https://github.com/rabbitmq/erlang-rpm/releases rabbitmq的rpm安装 ...

  5. 在Docker中安装配置Oracle12c并实现数据持久化

    在Docker中安装配置Oracle12c并实现数据持久化 选定镜像,并pull到系统中,一定要先配置加速,不然超级慢 eric@userver:~$ docker pull sath89/oracl ...

  6. 安装配置fastDFS文件服务器 - Linux

    一.配置linux环境 1.新建虚拟机 把上次安装的CentOS7的文件复制一份,并改名 打开VM>打开虚拟机,选择刚才复制好的虚拟机,并启动.这样做的目的主要是为了保留一份最基础的母本,为了将 ...

  7. 如何在CentOS系统中安装配置SNMP服务

    CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,现在有一大部分服务器在使用此操作系统:SNMP(简单网络 ...

  8. Windows和Centos下Docker的安装配置

    Windows和Centos下Docker的安装配置 windows环境下的安装(win10) 在Windows系统上需要利用toolbox来安装Docker,现在 Docker 有专门的 Win10 ...

  9. 在win2003上安装配置win 服务 遇到的问题

    在win2003上安装配置win 服务 win服务安装后启动不起来 .. 没有装.net framework4.0   要装这个版本 mysql-connector-net-6.3.4.zip    ...

随机推荐

  1. [教程]Ubuntu16.04安装TeX Live

    [教程]Ubuntu16.04安装TeX Live step 1 戳这里下载镜像 (只需要下载texlive.iso) 在终端输入 sudo apt-get install perl-tk step ...

  2. [RN] React Native 实现 类似京东 的 沉浸式状态栏和搜索栏

    React Native 实现 类似京东 的 沉浸式状态栏和搜索栏 其原理其实就是在要 隐藏 部分的那个View 前面加入 StatusBar 代码! 代码如下: <StatusBar anim ...

  3. 第04组Alpha事后诸葛亮

    一.组长博客:地址 二.Postmortem模板 设想和目标 1.我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们要解决的问题是让大学生可以通过福鱼网站将暂时无 ...

  4. 【JZOJ6231】【20190625】等你哈苏德

    题目 有\(m\)条线段,每条线段为\([l_i,r_i]\),每条线段可以是黑/白色 有些线段已经被染色,有些需要被确定颜色 询问是否存在一种染色方案,使得对于每一个位置\(i\),覆盖它的线段黑白 ...

  5. 【Python笔记】1、格式化输出(%用法和format用法)

    转自:https://www.cnblogs.com/fat39/p/7159881.html 一.格式化输出1.整数的输出%o —— oct 八进制%d —— dec 十进制%x —— hex 十六 ...

  6. WIFI万能钥匙面试引出上线注意事项

    WEB应用上线程序员注意事项: 单元测试 前后端联调 界面和用户体验 DEBUG 性能 SEO 安全性

  7. gcc 编译c++文件

    #include <stdio.h> //将类定义在命名空间中 namespace Diy{ class Student{ public: char *name; int age; flo ...

  8. OpenFOAM——圆筒壁稳态导热

    对于圆筒壁的稳态导热,温度分布的解析解为: IN为恒温边界,设置为300K,OUT也为恒温边界,设置为500K 固体导热系数为:0.0887W/(m·K) 首先进行建模操作,任何建模软件均可,本算例采 ...

  9. uniapp - 更改项目生成模板、页面

    每次生成项目目录都需要删除一些再添加太麻烦了,就想着能不能修改一下模板 - 当然自定义模板也能实现 好了,被我找到了. 修改以后源文件名称和格式覆盖回去即可,重新启动hbuilderx 这里可以修改e ...

  10. 虚拟环境上的jupyterhub开机启动设置

    为了让jupyterhub 开机启动,或者以服务的方式启动,折腾了好久.环境 ubuntu 16.04anaconda >= 4.5python35 jupyterhub 0.9.4node 6 ...