讲师中心 微信公众号
AI工具推荐 视频效率加速

Docker Desktop怎么一次挂载多个文件夹_Docker Desktop多目录映射配置教程

轻墨酱_7804

轻墨酱_7804

发布时间:2026-11-08 12:39:09

|

706人浏览过

|

来源于php中文网

原创

Windows Docker Desktop 多目录映射必须在启动容器时用多个 -v 参数(如 -v D:/project:/app -v D:/logs:/app/logs),不可追加到已运行容器;需提前在 File Sharing 中勾选对应盘符,路径用正斜杠,含空格需加双引号,且宿主机目录须手动创建并设完全控制权限。

docker desktop怎么一次挂载多个文件夹_docker desktop多目录映射配置教程

不能直接给已运行的容器“追加”多个挂载点,必须重建容器或改用 docker-compose 管理——这是 Windows Docker Desktop 下多目录映射最常被误踩的起点。

docker run 里用多个 -v 参数一次挂载

最直接的方式是在启动容器时用多个 -v 或 --volume 参数。Windows 路径需用正斜杠或双反斜杠,且必须提前在 Docker Desktop 的 File Sharing 设置中勾选对应盘符(比如 D: 或 C:\Users)。

  • 错误示例:docker run -v C:\data:/app/data -v C:\conf:/app/conf nginx → 报错 invalid mount config,因路径未共享或含空格/中文
  • 正确写法(推荐正斜杠):docker run -d --name myapp -v D:/project:/app -v D:/logs:/app/logs -v D:/config:/etc/myapp nginx
  • 若路径含空格,必须用双引号包裹宿主机部分:-v "D:/my project":/app
  • 每个 -v 是独立挂载,权限、只读控制可分别指定,例如:-v D:/data:/data:ro -v D:/cache:/cache:rw

docker-compose.yml 中声明多个 volumes

适合长期维护或涉及多个容器的场景。Docker Desktop 会自动识别 volumes 块里的所有条目,无需额外操作。

  • 注意路径分隔符:YAML 中仍用正斜杠,./src 表示相对于 docker-compose.yml 所在目录的路径
  • 示例片段:
services:
  web:
    image: nginx
    volumes:
      - D:/www:/usr/share/nginx/html:ro
      - D:/nginx/conf.d:/etc/nginx/conf.d:ro
      - D:/logs:/var/log/nginx
  • 如果某容器(如 PHP)和 Web 容器需共用代码目录,两个 service 都要声明相同路径,否则 PHP 容器内看不到 Nginx 挂载的文件(见 Devilbox 实践)
  • 避免使用 ./ 开头的相对路径映射到根目录级位置(如 ./:/hostroot),Windows 文件权限可能引发 Permission denied

挂载后容器内目录被清空或不可写?检查三件事

这不是挂载失败,而是 Windows 与 Linux 用户权限、路径存在性、挂载时机共同作用的结果。

  • 宿主机路径不存在时,Docker Desktop 会自动创建空目录,但该目录属 NTFS 默认用户,容器内 UID=0(root)可能无权写入 —— 解决办法:提前手动创建目录,并右键属性 → 安全 → 编辑 → 添加 Everyone 或具体用户并赋予“完全控制”
  • 容器启动早于宿主机目录就绪(尤其 WSL2 启动慢),导致挂载点为空 → 改用 docker-compose up --force-recreate 或确保目录先存在再 up
  • 映射路径末尾带斜杠(D:/data/)和不带(D:/data)在某些镜像行为不同,建议统一不带尾部斜杠,避免意外覆盖

为什么不用 bind mount + mount --bind 在容器里二次挂载?

有人想绕过重建容器,在运行中用 docker exec -it container_name mount --bind 加新目录。这在 Docker Desktop(WSL2 后端)下基本无效。

  • WSL2 内核默认禁用 mount 命令,即使容器是特权模式,也会报 operation not permitted
  • 即便临时启用,该挂载仅存在于当前容器生命周期,重启即失效,且无法被其他容器感知
  • 更关键的是:Docker Desktop 的文件共享机制(9P/virtio-fs)不支持运行时动态注入新共享路径,必须通过 File Sharing 设置预注册

真正麻烦的不是“怎么写多个 -v”,而是 Windows 权限模型和 WSL2 文件系统桥接带来的隐性约束——每次新加一个映射,都要确认它是否已在 Docker Desktop 的共享列表里、宿主机目录是否存在且可访问、以及有没有被另一个容器抢先创建了同名空目录。这些细节不显眼,却决定挂载到底“通不通”。

热门AI工具

更多
Flowith
Flowith Hot

Flowith是一款基于画布和智能体工作流的 AI 协作工作空间。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

讯飞智文

一款面向学习和办公场景的AI文档创作工具,可辅助生成PPT与Word文档,提高资料整理和内容制作效率。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

相关专题

更多
k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

805

2023.07.24

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

6559

2024.04.08

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

7677

2024.04.08

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3053

2024.04.08

Docker容器化部署与DevOps实践
Docker容器化部署与DevOps实践

本专题面向后端与运维开发者,系统讲解 Docker 容器化技术在实际项目中的应用。内容涵盖 Docker 镜像构建、容器运行机制、Docker Compose 多服务编排,以及在 DevOps 流程中的持续集成与持续部署实践。通过真实场景演示,帮助开发者实现应用的快速部署、环境一致性与运维自动化。

339

2026.02.11

Docker 容器部署
Docker 容器部署

本专题整合了Docker容器部署相关内容,阅读专题下面的文章了解更多详细操作教程。

491

2026.03.31

Java容器化部署与Docker实践教程合集
Java容器化部署与Docker实践教程合集

聚焦 Java 应用的容器化与云原生部署,讲解 Dockerfile 编写规范与 Java 应用镜像构建、多阶段构建(Multi-stage Build)减小镜像体积、Jib / Buildpacks 免 Dockerfile 镜像构建方案、JVM 容器感知参数(-XX:MaxRAMPercentage)配置、Docker Compose 编排多服务(应用 + MySQL + Redis)、容器健康检查与资源限制、Kubernetes

460

2026.05.11

Go Docker与容器化部署教程合集
Go Docker与容器化部署教程合集

聚焦 Go 应用的容器化部署优势与实践,讲解 Go 静态编译特性(CGO_ENABLED=0)与 scratch / distroless 极小基础镜像构建、多阶段 Dockerfile 编写规范、交叉编译生成目标平台二进制、镜像安全扫描(Trivy)与漏洞修复、Docker Compose 本地编排开发环境、Kubernetes Deployment / Service / ConfigMap 部署 Go 服务、健康检查(Livene

345

2026.05.15

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

0

2026.11.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn