Windows容器绑定挂载卷失败,寻求技术解决方案
解决Windows容器绑定挂载卷时的"找不到路径"错误
我之前也碰到过一模一样的问题,结合你给出的系统(Windows 10 1709 16299.309)和Docker版本(18.03.1-ce),大概率是以下几个原因导致的,给你几个可行的解决办法:
先确认主机路径是否存在
Windows容器挂载卷时,Docker不会自动创建主机侧的目标文件夹。你得先手动在Windows主机的C盘根目录创建C:\test文件夹,再重新执行挂载命令。这是最容易被忽略的基础问题。检查Docker的文件共享权限
Windows上的Docker需要授权才能访问主机磁盘:- 右键点击任务栏托盘里的Docker图标,选择「Settings」
- 切换到「Resources > File Sharing」选项卡
- 确保C盘的复选框已经被勾选
- 点击「Apply & Restart」重启Docker服务
权限没开启的话,Docker完全无法访问主机的磁盘路径,必然报错。
调整路径格式尝试
有时候路径的写法会影响挂载结果,你可以试试这两种格式的命令:
用Windows原生反斜杠(注意命令行里的转义):docker run -it -v c:\test:c:\test microsoft/nanoserver或者用双引号包裹路径(如果路径含空格必须这么做,这里也可以尝试):
docker run -it -v "c:/test:c:/test" microsoft/nanoserver排查版本兼容性问题
你的Windows 10 1709属于比较旧的版本,虽然Docker 18.03.1-ce理论支持,但可能存在兼容性bug。如果上面的方法都无效:- 尝试把Windows 10 1709更新到最新的累积补丁(当前你的补丁是16299.309,检查Windows更新获取后续补丁)
- 升级Docker到适配1709版本的稳定版(注意不要升级到不支持Windows 10 1709的新版本)
验证方法:解决后重新运行命令,进入容器后执行dir c:\test,如果能看到主机C:\test里的文件,说明挂载成功。
内容的提问来源于stack exchange,提问作者farinasa




