Centos7 使用Docker 部署mssql 2017
mssql是.NET的标配,一般使用.NET的人基本都用mssql。
以前mssql只能支持windows平台,从微软打出 拥抱开源 的口号开始,mssql的2017 版本,开始支持linux系统。
一开始,我是直接在centos中安装mssql的,总的来说,比windows快很多。但是现在都使用容器技术,docker也确实给人带来很多方便。
所以,我也弃用原有的直接在系统安装的方式,在linux中安装docker。并使用docker安装mssql。
全程非常简单,简化了很多工作。只需要一条命令即可完成。你也可以参照官方文档:
https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-docker?view=sql-server-ver15&pivots=cs1-bash
或者到docker hub中找到对应的帮助:
https://hub.docker.com/_/microsoft-mssql-server
执行这个命令:
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2017-latest
即可正常安装。
重点来了,数据文件存放在哪?
装完之后,我们的数据文件是存放在容器内部的,要物理备份,比较麻烦,而且如果不小心,把容器删除了,数据文件也就没有了。
所以,要在命令里,加多一个选项:
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -v /home/db_data:/var/opt/mssql -p 1433:1433 -d mcr.microsoft.com/mssql/server:2017-latest
就是这个:-v /home/db_data:/var/opt/mssql,在容器内加一个数据卷,其中/var/opt/mssql是容器内数据库存放文件的目录,我们把这个目录映射到物理路径:/home/db_data 。
这样,你使用外部链接,创建数据库。就可以在物理路径:/home/db_data 下看到对应的文件。而且如果 mssql容器出现故障,要删掉重新部署的话,物理路径下的数据库文件,还是会在那里的。