使用Docker --mount命令挂载本地文件夹至Windows容器失败求助
解决Windows Docker挂载本地文件夹的错误问题
你的报错是因为没指定挂载类型,Docker默认把c:\temp当成了volume名称,而volume名称不允许包含冒号这类字符,所以触发了invalid volume name错误。下面给你两种正确的解决方法:
方法1:使用--mount参数(明确指定绑定挂载类型)
你需要在--mount里加上type=bind,告诉Docker这是要绑定主机文件夹,而非创建volume。Windows路径有两种兼容写法:
- 用正斜杠替换反斜杠(Docker对这种格式兼容性更好):
docker run --mount type=bind,source=/c/temp,target=c:\temp -i newname:latest
- 保留反斜杠,用单引号包裹路径(PowerShell环境下推荐):
docker run --mount type=bind,source='c:\temp',target='c:\temp' -i newname:latest
方法2:使用-v(--volume)参数(更简洁的写法)
这种写法在Windows环境下更直观,无需额外指定类型,Docker会自动识别这是绑定挂载:
docker run -v c:\temp:c:\temp -i newname:latest
额外注意事项
- 确保主机上的
c:\temp文件夹已经存在,Docker不会自动创建绑定挂载的源文件夹,不存在的话请先手动创建。 - 你的主机和容器都是Windows Server 1709,版本完全匹配,不会出现因操作系统版本不兼容导致的挂载问题,这点可以放心。
内容的提问来源于stack exchange,提问作者Chethan S.
相关产品推荐
相关产品推荐

