在转移到Mac OS X 阵营以后,若是想在本机上安装微软的mssql-server数据库有三种方式:linux
MSSQL for Linux
版本。虚拟机
里面使用ISO文件进行安装。Docker
进行安装。第一种方式和第二种方式缺点就是要本身找安装包,第三种方式直接经过Docker的命令docker search mssql
就能搜索出来,而后拉取建立容器便可。sql
微软也提供了相应的帮助文档docker
镜像是微软官方的,但docker hub 奇怪的是并无把其标示为OFFICIAL。数据库
docker pull microsoft/mssql-server-linux
使用该命令就能够把数据库的docker镜像下载下来。bash
docker run --name MSSQL_1433 -m 512m -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d microsoft/mssql-server-linux
这个密码须要复杂密码,要有大小写和特殊符号,替换yourStrong(!)Password成你本身的密码就行。若是只Linux服务器,能够不用端口映射,直接使用宿主模式服务器
docker run --name MSSQL_1433 -m 512m -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' --net=host -d microsoft/mssql-server-linux
docker exec -it MSSQL_1433 /bin/bash
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'yourStrong(!)Password'
CREATE DATABASE testDB go
若是只想建立数据库,已经能够完成了,用Navicat Premium就能够链接到数据库了。ui
在容器内先建立一个文件夹spa
mkdir /var/opt/mssql/backup
在宿主把.bak备份文件复制到容器rest
sudo docker cp /Users/front/Downloads/beifen.bak MSSQL_1433:/var/opt/mssql/backup
运行sqlcmd到逻辑文件名称和备分内的路径的列表容器内code
sudo docker exec -it MSSQL_1433 /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'yourStrong(!)Password' -Q 'RESTORE FILELISTONLY FROM DISK = "/var/opt/mssql/backup/beifen.bak"' | tr -s ' ' | cut -d ' ' -f 1-2
运行结果
LogicalName PhysicalName ---------------------------------- beifen D:\Program beifen_log D:\Program
还原数据库
sudo docker exec -it MSSQL_1433 /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'yourStrong(!)Password' -Q 'RESTORE DATABASE 数据库名 FROM DISK = "/var/opt/mssql/backup/beifen.bak" WITH MOVE "beifen" TO "/var/opt/mssql/data/beifen.mdf", MOVE "beifen_Log" TO "/var/opt/mssql/data/beifen.ldf"'
Done
本文参考微软帮助文档
使用 Docker 运行 SQL Server 2017 容器映像Run the SQL Server 2017 container image with Docker
还原 Linux Docker 容器中的 SQL Server 数据库Restore a SQL Server database in a Linux Docker container