Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 将数据库备份从容器复制到本地目录-MSSQLS2019和Docker_Sql Server_Docker_Ssms - Fatal编程技术网

Sql server 将数据库备份从容器复制到本地目录-MSSQLS2019和Docker

Sql server 将数据库备份从容器复制到本地目录-MSSQLS2019和Docker,sql-server,docker,ssms,Sql Server,Docker,Ssms,我有一个数据库,它在sqldocker容器中本地运行,我想备份它,并能够在创建自定义sqldocker映像时作为COPY命令的一部分使用,然后最终将其作为RESTORE database命令的一部分使用sqlcmd 但是,当我在SSMS中右键单击数据库并转到backup时,我似乎只能在容器内备份,而不能在C:驱动器上本地备份 是否有一种方法可以将.bak文件检索到本地驱动器?容器的设计非常明确,因此它们对容器本身之外的资源的访问非常有限;因此命名(所有内容都在一个容器中,容器只能访问该容器中的对

我有一个数据库,它在
sql
docker容器中本地运行,我想备份它,并能够在创建自定义
sql
docker映像时作为
COPY
命令的一部分使用,然后最终将其作为
RESTORE database
命令的一部分使用
sqlcmd

但是,当我在
SSMS
中右键单击数据库并转到
backup
时,我似乎只能在容器内备份,而不能在
C:
驱动器上本地备份


是否有一种方法可以将
.bak
文件检索到本地驱动器?

容器的设计非常明确,因此它们对容器本身之外的资源的访问非常有限;因此命名(所有内容都在一个容器中,容器只能访问该容器中的对象)。您可以将主机上存储备份的目录装载到容器中(请参阅),但不要装载
C:
,只装载您需要的目录。否则,您需要将
.bak
文件复制到容器的文件系统。谢谢,假设我将其保存在容器
/var/backups
中预先存在的文件夹中,然后我从那里创建一个绑定装载到本地驱动器,例如
C:\mssql\backups
。抱歉,我没有完全理解最后一句话。不,您需要创建一个目录,以便在主机上存储备份。然后将该目录作为装载点添加到容器中(我个人建议在
/mnt
目录中,但这是首选项)。然后,您可以备份到容器中的directory,并且可以在主机上看到它。例如,假设您创建目录
C:\mssql\backups
,并将其装入容器
/mnt/mssql/backups/
中。当您在
/mnt/mssql/backups/
中创建备份时,您也可以在
C:\mssql\backups
中看到它。啊,太好了,我现在明白了,我可能会使用与我以前看到的相同的命名约定
/mnt
。我还想了解如何将
.sql
文件与容器中的
sqlcmd
结合使用,因为我想将
还原数据库
的东西放在容器中,但这是一个单独的问题,容器是明确设计的,因此它们对容器本身之外的资源的访问非常有限;因此命名(所有内容都在一个容器中,容器只能访问该容器中的对象)。您可以将主机上存储备份的目录装载到容器中(请参阅),但不要装载
C:
,只装载您需要的目录。否则,您需要将
.bak
文件复制到容器的文件系统。谢谢,假设我将其保存在容器
/var/backups
中预先存在的文件夹中,然后我从那里创建一个绑定装载到本地驱动器,例如
C:\mssql\backups
。抱歉,我没有完全理解最后一句话。不,您需要创建一个目录,以便在主机上存储备份。然后将该目录作为装载点添加到容器中(我个人建议在
/mnt
目录中,但这是首选项)。然后,您可以备份到容器中的directory,并且可以在主机上看到它。例如,假设您创建目录
C:\mssql\backups
,并将其装入容器
/mnt/mssql/backups/
中。当您在
/mnt/mssql/backups/
中创建备份时,您也可以在
C:\mssql\backups
中看到它。啊,太好了,我现在明白了,我可能会使用与我以前看到的相同的命名约定
/mnt
。我还想了解如何将
.sql
文件与容器中的
sqlcmd
结合使用,因为我想将
还原数据库
的内容放在容器中,但这是一个单独的问题。