在容器的Azure Web App中将Mongodb卷挂载到Azure文件

时间:2020-02-21 08:26:23

标签: mongodb docker-compose azure-web-app-for-containers

我有一个作为docker容器运行的应用程序,该应用程序连接到另一个容器即Mongodb,我想将mongodb卷AND挂载到Azure共享文件。我正在使用docker compose文件来定义我的容器。假设我已经有一个链接到应用程序的存储帐户,这就是我在docker-compose

中定义我的docker卷的方式
data/db

Unable to mount azure file shares as mongodb volume in azure container instances中,提到不建议安装 database: image: "mongo:latest" container_name: database ports: - "27017:27017" volumes: - ${WEBAPP_STORAGE_HOME}/data/db:/data/db ,它不起作用。我的问题是:

如何将mongodb文件安装到Azure文件?如何对这些文件执行备份?如果我想将备份恢复到数据库,是否可以仅将Azure文件中的文件上传并在mongodb中看到它们?

1 个答案:

答案 0 :(得分:1)

对于您的问题,就像我在另一个问题中所说的那样。要将Azure File Share装载到Web App,将覆盖映像中的现有文件。因此,当已经安装Azure文件共享时,您需要更改MongoDB数据路径。

示例docker-compose文件如下:

version: '3.7'

services:
   web:
     image: mongo:latest
     ports:
       - "27017:27017"
     volumes:
       - fileshare:/data/mongodb

并使用此docker-compose文件创建Web App,并将起始文件设置为值mongod --dbpath=/data/mongodb --bind_ip_all。例如,如果使用Azure CLI,则创建命令如下:

az webapp create -g group_name --plan plan_name -n web_name --multicontainer-config-type compose --multicontainer-config-file docker-compose-file --startup-file "mongod --dbpath=/data/mongodb --bind_ip_all"

最后,您需要按如下所示设置文件共享装载:

enter image description here

或者按照Configure your app with Azure Storage中的CLI进行操作。