You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Web Apps For Containers多服务共享单一持久化存储技术咨询

解决Azure Web Apps For Containers多服务共享持久化存储的方案

我来帮你搞定这个问题——其实Azure Files才是Azure Web Apps For Containers场景下实现多服务共享持久化存储的官方推荐方案,Docker Cloudstor插件并不适配Web Apps的托管环境,所以咱们直接用更靠谱的Azure Files来实现。

为什么/home目录不能共享?

每个Web Apps For Containers实例的/home目录是绑定到该实例独立的存储(要么是本地临时存储,要么是Web App专属的持久化存储),属于单实例/单服务私有,天然无法跨多个服务共享,所以这个路子走不通。

具体实现步骤

1. 创建Azure Files共享存储

首先你需要一个Azure存储账户(如果没有的话先创建一个),然后在里面创建文件共享:

  • Azure Portal操作:
    进入你的存储账户 → 左侧菜单选择「文件共享」→ 点击「+ 文件共享」,填写共享名称、配额(比如1024GB)后创建。
  • Azure CLI命令:
    az storage share create --account-name <你的存储账户名> --name <共享名称> --quota 1024
    

2. 将Azure Files挂载到两个Web App服务

你需要给每个Web App配置相同的Azure Files挂载,这样两个服务就能访问同一份共享存储了:

  • Azure Portal操作:
    1. 进入第一个Web App的管理页面 → 左侧菜单选择「配置」→ 切换到「路径映射」标签页
    2. 点击「+ 添加Azure存储挂载」,填写以下信息:
      • 名称:自定义标识(比如shared-storage)
      • 存储账户:选择你刚才创建的存储账户
      • 文件共享:选择你创建的文件共享
      • 挂载路径:填写容器内的路径(比如/mnt/shared,注意不要用/home)
      • 访问密钥:选择存储账户的访问密钥
    3. 对第二个Web App重复上述操作,确保挂载路径和存储配置完全一致。
  • Azure CLI命令:
    对第一个Web App执行:
    az webapp config storage-account add --resource-group <你的资源组名> --name <第一个Web App名称> --custom-id shared-storage --storage-type AzureFiles --account-name <存储账户名> --share-name <共享名称> --mount-path /mnt/shared --access-key <存储账户访问密钥>
    
    对第二个Web App执行同样命令,替换<第一个Web App名称>为第二个Web App的名称即可。

3. 验证共享存储是否生效

你可以在其中一个服务的容器内写入测试文件:

echo "共享存储测试内容" > /mnt/shared/test.txt

然后在另一个服务的容器内读取该文件:

cat /mnt/shared/test.txt

如果能正常读取到内容,说明共享存储配置成功了。

关于Docker Cloudstor的说明

Docker Cloudstor是针对Docker Swarm或Kubernetes集群的卷插件,而Azure Web Apps For Containers是托管的PaaS服务,并不支持直接使用第三方Docker卷插件,所以这个方案在Web Apps场景下不可行,咱们还是用官方支持的Azure Files更稳妥。

内容的提问来源于stack exchange,提问作者Vikram Shityalkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:42:32