docker compose on azure:不接受卷定义
docker compose on azure: volume definition is not accepted
在 docker 组合多容器应用程序时,我收到关于我的卷定义的错误:
services.volumes 不允许添加 属性 nginx。
在我的 docker-compose.yaml 中,我按照 docker 的规定定义了体积:
https://docs.docker.com/engine/context/aci-integration/#using-azure-file-share-as-volumes-in-aci-containers.
我的docker-compose.yaml:
version: '3.4'
services:
nginx:
image: nginx
container_name: nginx
restart: always
volumes:
- nginxdata/conf.d:/etc/nginx/conf.d
- nginx/basic_auth:/etc/nginx/basic_auth
ports:
- 80:80/tcp
volumes:
nginxdata:
driver: azure_file
driver_opts:
share_name: nginxdata
storage_account_name: mystorageacct
nginx:
driver: azure_file
driver_opts:
share_name: nginx
storage_account_name: mystorageacct
当我进行 docker 撰写时,出现错误:
“services.volumes 不允许附加 属性 nginx 数据”。
注意:存在 azure 共享,例如,这有效:
docker --context myaci run --name=nginxvolip -p 80:80 -v mystorageacct/nginx:/usr/share/nginx/html nginx
我错过了什么吗?欢迎帮助!
让我们看一下运行良好的示例:
docker --context myaci run --name=nginxvolip -p 80:80 -v mystorageacct/nginx:/usr/share/nginx/html nginx
这个命令的意思是将存储mystorageacct
中的文件共享nginx
挂载到路径/usr/share/nginx/html
,没有问题。但是在 docker-compose 文件中,您可以像这样配置挂载:
volumes:
- nginxdata/conf.d:/etc/nginx/conf.d
- nginx/basic_auth:/etc/nginx/basic_auth
您似乎想将文件共享中的文件夹挂载到容器中的路径中。这就是问题所在。您无法将文件共享内的文件夹挂载到容器,只能挂载您可以挂载的文件共享。而且报错还显示Additional 属性 is not allowed 关键字。所以可用的挂载应该是这样的:
volumes:
- nginxdata:/etc/nginx/conf.d
- nginx:/etc/nginx/basic_auth
在 docker 组合多容器应用程序时,我收到关于我的卷定义的错误: services.volumes 不允许添加 属性 nginx。
在我的 docker-compose.yaml 中,我按照 docker 的规定定义了体积: https://docs.docker.com/engine/context/aci-integration/#using-azure-file-share-as-volumes-in-aci-containers.
我的docker-compose.yaml:
version: '3.4'
services:
nginx:
image: nginx
container_name: nginx
restart: always
volumes:
- nginxdata/conf.d:/etc/nginx/conf.d
- nginx/basic_auth:/etc/nginx/basic_auth
ports:
- 80:80/tcp
volumes:
nginxdata:
driver: azure_file
driver_opts:
share_name: nginxdata
storage_account_name: mystorageacct
nginx:
driver: azure_file
driver_opts:
share_name: nginx
storage_account_name: mystorageacct
当我进行 docker 撰写时,出现错误: “services.volumes 不允许附加 属性 nginx 数据”。
注意:存在 azure 共享,例如,这有效:
docker --context myaci run --name=nginxvolip -p 80:80 -v mystorageacct/nginx:/usr/share/nginx/html nginx
我错过了什么吗?欢迎帮助!
让我们看一下运行良好的示例:
docker --context myaci run --name=nginxvolip -p 80:80 -v mystorageacct/nginx:/usr/share/nginx/html nginx
这个命令的意思是将存储mystorageacct
中的文件共享nginx
挂载到路径/usr/share/nginx/html
,没有问题。但是在 docker-compose 文件中,您可以像这样配置挂载:
volumes:
- nginxdata/conf.d:/etc/nginx/conf.d
- nginx/basic_auth:/etc/nginx/basic_auth
您似乎想将文件共享中的文件夹挂载到容器中的路径中。这就是问题所在。您无法将文件共享内的文件夹挂载到容器,只能挂载您可以挂载的文件共享。而且报错还显示Additional 属性 is not allowed 关键字。所以可用的挂载应该是这样的:
volumes:
- nginxdata:/etc/nginx/conf.d
- nginx:/etc/nginx/basic_auth