Azure ACI 和文件共享 - 已安装卷 linux MSSQL 服务器不可访问
Azure ACI and File Share - Volume mounted linux MSSQL Server is not accessible
我在 Azure 容器实例中使用 mssql server 图像。
无需安装任何卷,ACI 已成功创建并运行良好。但是当我挂载一个卷时,即使在容器重新启动后也要保留数据,由 Azure 存储帐户(文件共享)组成,ACI 已成功创建但无法访问数据库。
log 和 secrets 文件夹是在文件共享 (acishare) 中创建的,但是 data 未在文件共享中生成。
任何人都可以提供详细的步骤来解决它或创建一个 ACI 文件共享作为 mssql 服务器 docker 映像的卷。
[Azure bash 命令创建 ACI 并安装了 Azure 文件共享卷]
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 服务器 运行ning 的新路径。然后你需要手动将你想要的数据传输到挂载路径。这不是一个好的解决方案。但是现在由于文件共享挂载的限制,没有更好的解决方案。
我在 Azure 容器实例中使用 mssql server 图像。
无需安装任何卷,ACI 已成功创建并运行良好。但是当我挂载一个卷时,即使在容器重新启动后也要保留数据,由 Azure 存储帐户(文件共享)组成,ACI 已成功创建但无法访问数据库。
log 和 secrets 文件夹是在文件共享 (acishare) 中创建的,但是 data 未在文件共享中生成。
任何人都可以提供详细的步骤来解决它或创建一个 ACI 文件共享作为 mssql 服务器 docker 映像的卷。
[Azure bash 命令创建 ACI 并安装了 Azure 文件共享卷]
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 服务器 运行ning 的新路径。然后你需要手动将你想要的数据传输到挂载路径。这不是一个好的解决方案。但是现在由于文件共享挂载的限制,没有更好的解决方案。