将Mongodb卷装载到Azure Web App中的Azure文件以用于容器
我有一个作为docker容器运行的应用程序,该应用程序连接到另一个容器Mongodb,我想将Mongodb卷将Mongodb卷装载到Azure Web App中的Azure文件以用于容器,mongodb,docker-compose,azure-web-app-for-containers,Mongodb,Docker Compose,Azure Web App For Containers,我有一个作为docker容器运行的应用程序,该应用程序连接到另一个容器Mongodb,我想将Mongodb卷数据/db装载到Azure共享文件。我正在使用docker compose文件定义我的容器。假设我已经有一个链接到应用程序的存储帐户,这就是我在docker compose中定义docker卷的方式 database: image: "mongo:latest" container_name: database ports: - "27017:270
数据/db
装载到Azure共享文件。我正在使用docker compose文件定义我的容器。假设我已经有一个链接到应用程序的存储帐户,这就是我在docker compose中定义docker卷的方式
database:
image: "mongo:latest"
container_name: database
ports:
- "27017:27017"
volumes:
- ${WEBAPP_STORAGE_HOME}/data/db:/data/db
在文章中提到,不建议安装数据/db
,而且它不会工作。我的问题是:
如何将mongodb文件装载到Azure文件?如何备份这些文件?如果我想将备份恢复到数据库,是否可以将文件上载到azure文件中,并在我的mongodb中查看它们 关于你的问题,正如我在另一期中所说的那样。将Azure文件共享装载到Web应用程序将覆盖映像中的现有文件。因此,当Azure文件共享已装载时,您需要更改MongoDB数据路径 示例docker组合文件如下所示:
version: '3.7'
services:
web:
image: mongo:latest
ports:
- "27017:27017"
volumes:
- fileshare:/data/mongodb
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"
并使用此docker compose文件创建Web应用程序,并使用值mongod--dbpath=/data/mongodb--bind_ip_all
设置开始文件。例如,如果使用Azure CLI,则创建命令如下所示:
version: '3.7'
services:
web:
image: mongo:latest
ports:
- "27017:27017"
volumes:
- fileshare:/data/mongodb
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"
最后,您需要如下设置文件共享装载:
或者按照CLI中的步骤操作。还有其他问题吗?它能解决你的问题吗?请给出响应。我在docker compose中添加了启动命令,它将
数据/mongod
装载到我的存储器中。但是现在我得到了另一个错误`F STORAGE[initandlisten]原因:1:不允许操作`mongodb容器尝试检查WiredTiger.w
文件时发生了什么,它失败了,因此它重新启动容器,在那里找到相同的文件,并创建另一个WiredTiger.w.2
等等。如何解决这个问题?@MohamadSobhie不要将命令放在docker compose文件中。我也试过了。但它不起作用。只需按照答案中的CLI命令操作即可。它工作正常。您的命令对我不起作用,应用程序工作正常,但我在存储中没有看到任何文件,在创建应用程序时指定mongodb路径是否会使它成为每次我重新创建mongodb容器时的启动命令?@MohamadSobhie是的,每次创建Web应用程序都需要启动命令。正如您提供的链接中显示的原因。