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文件。