win10中通过docker安装sqlserver服务器的操作说明
目录简介Docker安装在Docker中安装sql server总结简介在了解了Docker之后,有段时间一直想用Docker来完成数据库服务的安装,这样只要打开Docker服务后,在电脑上装一个客户端就可以使用数据库了。而且通过数据卷的使用,我们可以把数据库文件(*.mdf和*.ldf)保存到本地的磁盘中。这样就算哪天Docker出现问题,重装后也不怕数据库内容的丢失,同...
目录
简介
在了解了Docker之后,有段时间一直想用Docker来完成数据库服务的安装,这样只要打开Docker服务后,在电脑上装一个客户端就可以使用数据库了。而且通过数据卷的使用,我们可以把数据库文件(*.mdf和*.ldf)保存到本地的磁盘中。这样就算哪天Docker出现问题,重装后也不怕数据库内容的丢失,同时数据库的更新也很方便,只要更新Docker镜像就可以了。但是一直这么拖着,最近终于开始着手尝试,并记录过程和大家分享。
Docker安装
首先是安装docker,我用的win10的系统,所以下载的也是可以在windows上安装的文件。具体地址:https://hub.docker.com/?overlay=onboarding 。需要注册(免费)登录后才可下载。请下载最新的版本安装。(PS:2.0X和2.1X版本的虚拟镜像文件名字不一样,这意味这早期版本的docker下的镜像,在新版本中无法使用。可参看下面给出的docker镜像文件.vhdx位置设置—接下来的第四张图)
安装后有几个问题,我个人觉得还是先解决下比较好。
首先,我觉得需要改变下Docker默认的镜像位置。默认Docker镜像位置是C盘的,也就是说,之后的使用中你拉取的镜像文件都是在C盘。从磁盘大小及故障规避的角度,我都建议把镜像的位置放得其他盘中。
而修改Docker镜像位置,windows系统中需要你先打开Hyper-V服务。这个可以在控制面板-程序-程序和功能-启用或关闭Windows功能 中启用。这里就不详细说明了。然后如下图所示,找到Hyper-V管理器并打开。
打开后,右击其子节点,在菜单中选择【Hyper-V设置】,打开如下图的内容。修改虚拟磁盘和虚拟机的路径。(虚拟机的路径应该可以不用修改,但是如果你不想使用第三方的虚拟机,而只是为了学习Linux命令,那么可以考虑修改,找个虚拟机学习下~当然,仅仅是学习)
当设置好后,请根据其实重启计算机。重启后打开Docker客户端,在启动后右击选择【设置(Settings)】,看到如下的内容。
上图是为了使用数据卷,把数据库文件保存到本地磁盘用的。所以你只需要选择一个需要共享的磁盘就要可以了,之后的数据卷也映射到这个磁盘下的文件夹中。
下图是虚拟路径的设置。
当然,Docker还有其他的一些设置,这里暂时用不到,就不多说了。
完成了上面的内容后,让我们打开PowerShell(最好是系统管理员身份运行),执行docker info查看Docker的安装情况。
在Docker中安装sql server
如果安装成功了,可以考虑通过网址(https://hub.docker.com/_/microsoft-mssql-server)查看最新的sql Docker镜像情况,或者通过docker search sql 命令来查询。
为了直观一点,可以参考下图。(我是用的微软官方提供的镜像)
点击进入后有拉取镜像的命令,可直接复制执行下载。如下图为我下载的镜像。
镜像下载完成后,在PowerShell中执行以下命令。
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Abc!@#123456' -p 1433:1433 -v D:/database/data:/var/opt/mssql/data --restart=always --name mssql2017 -d mcr.microsoft.com/mssql/server:2017-latest
说明:
SA_PASSWORD 是数据库sa登录用的数据库密码,需要注意的是,这个密码必须是微软要求的强密码;
端口是用的默认端口1433;
数据卷设置,我的本地磁盘是放在d盘,后的docker中的位置不变;
--restart=always 如果不需要重启后自启动,只是测试学习,可不用此命令;
以上命令执行完成后,可以通过docker ps 查看当前正在运行的镜像容器。
然后在本地安装SQL Server Management Studio后即可使用,如下所示。
总结
到这里,在docker中使用sql server就安装完成了,也可以正常使用。这也的好处是,可用节约安装sql server的时间(这个时间还不短呢);节约磁盘空间;升级方便,只需要更新镜像即可;数据库文件通过数据卷放到本地磁盘,一定上可防止因docker问题导致的数据丢失。当然,最终还是看你自己的喜好了~~
更多推荐
所有评论(0)