You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行docker-compose up -d时挂载路径创建报错:mkdir /host_mnt/d: file exists

解决Docker Compose挂载Windows盘符时的mkdir /host_mnt/d: file exists错误

你遇到的这个问题,本质是Windows环境下Docker(尤其是WSL2后端)的盘符挂载机制冲突导致的——Docker尝试创建/host_mnt/d路径时,发现该路径已经被其他进程(比如WSL自身的挂载)占用了。下面是几个按优先级排序的解决方案:

方法一:重启Docker Desktop(最快速修复)

很多时候这个错误只是Docker的挂载状态残留导致的,重启就能解决:

  • 右键点击任务栏上的Docker图标,选择Restart
  • 等Docker完全重启完成后,回到你的项目目录D:\project\c\test\docker,重新执行docker-compose up -d

方法二:手动清理WSL2中的残留挂载

如果重启Docker没用,大概率是WSL2自己挂载了D盘导致冲突:

  1. 打开任意WSL2发行版的终端(比如Ubuntu)
  2. 执行命令检查D盘的挂载状态:
    mount | grep /host_mnt/d
    
  3. 如果输出了挂载信息,执行卸载命令释放路径:
    sudo umount /host_mnt/d
    
  4. 回到Windows的命令行窗口,重新运行docker-compose up -d

方法三:检查Docker的文件共享权限

确保Docker有权限访问你的D盘:

  1. 打开Docker Desktop的Settings(设置)
  2. 切换到Resources -> File Sharing选项卡
  3. 确认D盘已经被勾选,如果没有就勾选上,然后点击Apply & Restart
  4. 重启完成后再次尝试启动容器

方法四:修改docker-compose.yaml的挂载路径

如果上面的方法都无效,可以尝试用绝对路径替换相对路径:
打开你的docker-compose.yaml,把volumes部分的相对路径改成Windows绝对路径(注意用正斜杠或者双反斜杠):

volumes:
  - D:/project/c/test/docker:/home/debugger/code

保存后重新执行docker-compose up -d

额外建议

如果你的Docker用的是WSL2后端,更推荐把项目放在WSL的文件系统中(比如\\wsl$\Ubuntu\home\你的用户名\project),这样不仅挂载性能更好,还能避免很多跨系统的路径冲突问题。

内容的提问来源于stack exchange,提问作者王奕然

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:05:46