Docker – 复制mssql数据库
我正在与docker工作testing一个Web应用程序,这个应用程序需要一个数据库。 我将我的应用程序复制到一个tomcat
容器中,并创build了一个mssql
容器。
但是,我需要将位于名为“tstsupsq”的服务器中的mssql数据库复制到我的mssql容器中的所有数据(不仅是模式)。
PS:我没有访问tstsupsq
服务器的mdf文件
有人可以帮助我吗?
谢谢
编辑:
经过多次尝试,我用命令行解决了这个问题。
如何使用命令行将mssql数据库从任何服务器复制到docker:
sqlcmd.exe -S myServer -U myUser -P myPassword -Q "BACKUP DATABASE [databaseName] TO DISK='backupLocation\databaseName.bak'" docker run -d -p 1433:1433 -e ACCEPT_EULA=Y -e SA_PASSWORD=myPassword --name containerName microsoft/mssql-server-linux:latest docker cp backupLocation\databaseName.bak containerName:/var/opt/mssql/data docker exec -it containerName /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P myPassword -Q "RESTORE DATABASE [databaseName] FROM DISK='/var/opt/mssql/data\databaseName.bak' WITH MOVE 'databaseName' TO '/var/opt/mssql/data/databaseName.mdf', MOVE 'databaseName_Log' TO '/var/opt/mssql/data/databaseName.ldf'"
您的数据库现在可以在泊坞箱容器中使用它的所有数据。
使用cp
命令将你的bak
文件复制到container
docker cp YourDbBackup.bak YourContainer:/YourDbBackup.bak
然后使用SSMS
来恢复bak
文件。
- 从Docker文件初始化谷歌云数据
- 使用Docker在Centos 7.3上安装SQL Server
- 如何使用SQL服务器docker容器的Windows身份validation
- EF核心迁移使用asp.net核心,SQL Server和Docker产生dotnet SDK错误
- Docker和MS SQL Server Linux – 错误9002.由于什么原因,数据库主服务器的事务日志已满
- Docker + mssql-server-linux:如何在构build期间启动.sql文件(来自Dockerfile)
- 如何为sqlserver2012创build一个docker镜像
- 创build表格作为select工作,即使执行GTIA一致性
- Docker:在Docker镜像之外启动一个mssql脚本