1. install
1.下载镜像
docker pull microsoft/mssql-server-linux
使用该命令就可以把数据库的docker镜像下载下来。
2.创建并运行容器
docker run --name MSSQL_1433 -m 512m -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=dusf123SQL!'-p 1433:1433 -d microsoft/mssql-server-linux
这个密码需要复杂密码,要有大小写、数字和特殊符号,替换dusf123SQL!
成你自己的密码就行。如果只Linux服务器,可以不用端口映射,直接使用宿主模式
docker run --name MSSQL_1433 -m 512m -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password'--net=host -d microsoft/mssql-server-linux
3.登入容器
docker exec -it MSSQL_1433 /bin/bash
4.连接到sqlcmd
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'yourStrong(!)Password'
5.执行SQL语句创建数据库
CREATE DATABASE testDB
go
如果只想创建数据库,已经可以完成了,用Navicat Premium就可以连接到数据库了。
6.还原数据库
在容器内先创建一个文件夹
mkdir /var/opt/mssql/backup
在宿主把.bak备份文件复制到容器
sudo docker cp /Users/front/Downloads/beifen.bak MSSQL_1433:/var/opt/mssql/backup
运行sqlcmd到逻辑文件名称和备份内的路径的列表容器内
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