Docker-compose挂载卷路径正确仍报错,Nginx webserver服务无法启动
问题根因
Docker 命名卷在首次创建后,配置会被持久化存储,后续修改docker-compose.yml中的卷定义不会自动更新已存在的卷配置,因此即使你修正了路径,旧卷仍会读取最初的错误路径配置,导致挂载失败。
解决步骤
- 停止所有关联服务并删除旧的命名卷
执行以下命令,-v参数会同步删除docker-compose.yml中定义的所有命名卷,是解决该问题的核心步骤:
docker-compose down -v
- 核对宿主机路径有效性
执行以下命令确认你修正后的挂载路径真实存在,且目录下有对应文件:
ls /root/dostoevskyrest/views/
额外注意:/root目录默认权限为700,若后续出现权限相关报错,建议将项目迁移到/opt等公共目录下再做挂载。
确认
docker-compose.yml路径配置
核对volumes.web-root.driver_opts.device的路径和上一步验证的实际宿主机路径完全一致,无拼写错误、多/少斜杠的问题。重新构建启动服务
docker-compose up -d --build
残留问题排查
如果执行上述步骤后仍报错,可手动删除残留的旧卷后重试:
- 查看所有卷列表,找到前缀为
dostoevskyrest_web-root的卷:
docker volume ls
- 删除对应旧卷:
docker volume rm <查到的卷名>
内容的提问来源于stack exchange,提问作者Rahul
相关产品推荐
相关产品推荐

