首先需要拉取mssql的镜像,咱们先搜索一下。
docker search mssql
image.png
咱们来安装第一个镜像
docker pull microsoft/mssql-server-linux
然后查看下镜像
docker images
image.png
然后创建容器
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=QWER1234" -p 1400:1433 --restart=always --name MSSQL_1400 -d microsoft/mssql-server-linux
接着登录到容器中
docker exec -it MSSQL_1400 /bin/bash
image.pngMSSQL_1400是刚才创建的容器的名字
接着连接到sqlcmd,用命令的方式还原数据库。
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'QWER1234'
密码就输入刚才的密码,如果能正常登陆的话,会显示1>。
image.png
接下来首先把数据库的bak文件以及mdf,ldf文件拷贝到dcoker容器下面。新建一个终端输入
docker cp mydb.bak MSSQL_1400:/var/opt/mssql/backup
参数说明:
1.mydb.bak:数据库备份文件
2.后面路径要先指定容器名
3.需要把bak,以及mdf,ldf,三个文件都拷贝过来
还原数据库命令,注意最后需要用go命令来执行,在第二行输入 go
。
RESTORE DATABASE MyDb FROM DISK=N'/var/opt/mssql/backup/MyDb .bak' WITH REPLACE , MOVE N'MyDb ' TO N'/var/opt/mssql/data/MyDb .mdf' , MOVE N'MyDb _log' TO N'/var/mssql/log/MyDb_0.ldf'
如果出现这个说明数据库还原成功
image.png
接下来可以打开Windows的SSMS管理功能连接看一下,服务器名称是centos 的ip地址加逗号在加容器的端口号
image.png
这里可以看到我们已经可以连上了,数据库也还原成功了。
image.png
网友评论