如何在Docker容器中挂载Windows文件夹?挂载命令报错排查
故障根因
该报错和容器内/data目录是否存在、Windows路径格式写法无关,核心是docker run命令的参数顺序不符合语法规则。docker run的参数解析逻辑为:
- 镜像名称之前传入的字段,会被识别为Docker本身的运行配置参数(比如端口映射
-p、交互终端-it、目录挂载-v等) - 镜像名称之后传入的所有字段,会被直接识别为容器启动后要执行的内部命令,不会被解析为Docker运行参数
你的命令中把-v c:/Users/swacker/MINT:/data/写在了镜像名msmint/msmint:latest之后,Docker不会将其识别为挂载配置,反而会尝试在容器的$PATH路径下寻找名为-v的可执行文件运行,最终触发找不到可执行文件的报错。
修复方法
调整参数顺序,将挂载参数移动到镜像名称之前即可,修正后的可执行命令:
docker run -p 9999:9999 -it -v c:/Users/swacker/MINT:/data/ msmint/msmint:latest
Windows环境挂载补充排查点
如果调整顺序后仍有挂载异常,可逐一核对:
- 打开Docker Desktop设置,进入「Resources - File Sharing」页面,勾选C盘盘符,保存配置后重启Docker服务,确保Docker有权限访问Windows本地目录
- 若路径识别失败,可尝试类Unix风格的Windows路径写法
/c/Users/swacker/MINT:/data/,如果路径包含空格,需要用双引号把整个本地路径包裹起来 - 注意本地路径拼写:Windows默认用户目录是
C:\Users而非C:\User,你之前尝试的C:\User\swacker\MINT路径本身存在拼写错误,会触发路径不存在的报错
内容的提问来源于stack exchange,提问作者Soerendip
相关产品推荐
相关产品推荐

