在Windows中挂载本地目录到Docker容器需四步:一、Docker Desktop中启用对应驱动器共享并重启;二、路径改用正斜杠+小写盘符(如E:/code/app);三、用-v参数启动容器,支持读写、只读或单文件挂载;四、通过docker exec进入容器验证文件双向同步。

要在Windows系统中将本地目录挂载到Docker容器里,让容器能实时读写你电脑上的文件夹(比如代码、配置、静态资源),必须先打通宿主机与Docker虚拟环境之间的路径权限和格式转换,否则执行docker run -v会直接报错“drive has not been shared”或“No such file or directory”。
第一步:在Docker Desktop中启用对应驱动器共享
这一步不可跳过,且必须在运行任何挂载命令前完成。Docker Desktop默认只共享C盘,E盘、D盘等其他盘符需手动勾选授权。
右键任务栏Docker图标 → 选择 Settings → 左侧点 Resources → 再点 File Sharing → 在列表中找到你要挂载的盘符(例如E:),勾选它 → 点击 Apply & Restart。
重启过程需等待1–2分钟,状态栏显示“Docker Desktop running”才算生效。若勾选时提示“access denied”,请关闭Docker Desktop,**右键以管理员身份重新启动它再操作**。
第二步:统一使用正斜杠+小写盘符格式写路径
Docker容器运行在Linux内核(WSL2或Hyper-V虚拟机)上,不识别Windows反斜杠\和大写盘符。
把你的本地路径 C:\myproject 改写成 C:/myproject;E:\code\app 改写成 E:/code/app。
注意:路径中不能含中文、空格或特殊符号(如&、( )),否则挂载大概率失败。如果路径含空格,比如 C:\My Project,必须改用 C:/My Project 并确保整个路径被双引号包裹(但更稳妥的做法是重命名为无空格路径)。
第三步:用-v参数启动容器并挂载
方法一:基础绑定挂载(开发调试首选)
打开PowerShell或CMD,执行:docker run -it -v E:/code/app:/app nginx:alpine。
其中 E:/code/app 是你Windows本地目录,/app 是容器内目标路径。容器启动后,ls /app 就能看到本地文件。
师生共创生态系统对接指南。当用户需要对接大学政策、平台资源、投资机构、产业伙伴等外部资源支持时使用。触发词:师生共创生态、大学支持、平台赋能、投资对接、产业合作、政策支持、清华x-lab、孵化器、创业资源
方法二:只读挂载(保护配置不被误改)
加 :ro 后缀即可:docker run -it -v C:/configs:/etc/myapp:ro alpine。容器内无法对 /etc/myapp 执行写入或删除操作。
方法三:挂载单个文件(如证书、密钥)
路径精确到文件名:docker run -it -v D:/certs/tls.crt:/etc/nginx/ssl/tls.crt nginx。注意容器内目标路径也必须是完整文件路径,不能是目录。
第四步:验证挂载是否成功
① 运行容器后,用 docker ps 查看容器ID;
② 执行 docker exec -it [容器ID] sh 进入容器;
③ 运行 ls -l /app(替换为你挂载的目标路径),确认列出的文件与Windows本地一致;
④ 在容器内新建一个测试文件:echo "from container" > /app/test.txt;
⑤ 立即回到Windows资源管理器打开 E:/code/app,确认 test.txt 已同步出现——【这一步成功,说明双向读写挂载完全生效】。

















