我有一个作为docker容器运行的应用程序,该应用程序连接到另一个容器即Mongodb,我想将mongodb卷AND
挂载到Azure共享文件。我正在使用docker compose文件来定义我的容器。假设我已经有一个链接到应用程序的存储帐户,这就是我在docker-compose
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中看到它们?
答案 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"
最后,您需要按如下所示设置文件共享装载:
或者按照Configure your app with Azure Storage中的CLI进行操作。