Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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 Azure ACI和文件共享-无法访问卷装载的linux MSSQL服务器_Sql Server_Azure_Docker_Azure Cli_Azure Container Instances - Fatal编程技术网

Sql server Azure ACI和文件共享-无法访问卷装载的linux MSSQL服务器

Sql server Azure ACI和文件共享-无法访问卷装载的linux MSSQL服务器,sql-server,azure,docker,azure-cli,azure-container-instances,Sql Server,Azure,Docker,Azure Cli,Azure Container Instances,我正在Azure容器实例中使用映像 在不装载任何卷的情况下,ACI将成功创建并正常工作。但当我装载一个卷时,为了在重新启动容器(由Azure存储帐户(文件共享)组成)后保持数据,ACI已成功创建,但无法访问数据库 日志和机密文件夹在文件共享(acishare)中创建,但数据不会在文件共享中生成 任何人都可以提供解决该问题的详细步骤,或者创建一个将文件共享为mssql server docker映像卷的ACI [Azure bash命令创建装载了Azure文件共享卷的ACI] ACI_PERS_R

我正在Azure容器实例中使用映像

在不装载任何卷的情况下,ACI将成功创建并正常工作。但当我装载一个卷时,为了在重新启动容器(由Azure存储帐户(文件共享)组成)后保持数据,ACI已成功创建,但无法访问数据库

日志机密文件夹在文件共享(acishare)中创建,但数据不会在文件共享中生成

任何人都可以提供解决该问题的详细步骤,或者创建一个将文件共享为mssql server docker映像卷的ACI

[Azure bash命令创建装载了Azure文件共享卷的ACI]

ACI_PERS_RESOURCE_GROUP=PC
ACI_PERS_STORAGE_ACCOUNT_NAME=pcs1
ACI_PERS_LOCATION=eastus
ACI_PERS_SHARE_NAME=acishare
STORAGE_KEY=$(az storage account keys list --resource-group $ACI_PERS_RESOURCE_GROUP --account-name $ACI_PERS_STORAGE_ACCOUNT_NAME --query "[0].value" --output tsv)

az container create \
--resource-group $ACI_PERS_RESOURCE_GROUP \
--name pcs5 \
--image mcr.microsoft.com/mssql/server \
--dns-name-label pcs5 \
--ports 80 443 1433 \
--azure-file-volume-account-name $ACI_PERS_STORAGE_ACCOUNT_NAME \
--azure-file-volume-account-key $STORAGE_KEY \
--azure-file-volume-share-name $ACI_PERS_SHARE_NAME \
--azure-file-volume-mount-path /var/opt/mssql/ \
--memory 2.5 \
--environment-variables 'SA_PASSWORD'='PxSecret123' 'ACCEPT_EULA'='Y' 'MSSQL_PID=Express'

ACI创建成功但无法访问的原因是mssql服务器未正常运行。当您将Azure文件共享装载到容器的路径
/var/opt/mssql
时,文件共享将覆盖其中的所有文件。但是这些文件是mssql服务器运行所必需的。因此服务器无法启动


可能的解决方案是将文件共享装载到不存在或不影响mssql服务器运行的新路径。然后您需要手动将想要的数据传输到装载路径。这不是一个好的解决办法。但由于文件共享装载的限制,现在没有更好的解决方案。

感谢您的详细回复。如果文件共享是有限的,我们如何装载一个卷来保存数据库数据以防止容器崩溃/重启?我需要在windows或linux容器中使用持久化数据运行MSSQL服务器。有什么想法吗?@NaveenKumarV Azure文件共享只支持Linux。正如我在回答中所说,您需要挂载到一个新文件夹并手动将数据传输到该文件夹。@NaveenKumarV您解决了这个问题吗?如果它对你有效,请接受它作为答案。