Docker Desktop容器挂载参数中的host具体指向什么运行环境?
Docker Desktop WSL2后端挂载根目录不匹配问题解答
问题根因
你观察到的现象和Hyper-V无关,是Docker Desktop的WSL2运行架构设计导致的:
- Docker Desktop启用WSL2后端时,会自动创建2个专用的独立WSL发行版:
docker-desktop:Docker守护进程(dockerd)的实际运行环境docker-desktop-data:专门存储镜像、容器、卷等持久化数据
- 你日常使用的WSL发行版和上述两个Docker专属发行版是相互隔离的独立实例,文件系统默认不互通。
- 你调用Docker API时,处理请求的是运行在
docker-desktop发行版内的dockerd进程,你在挂载参数中填写的Source: "/"会被解析为docker-desktop发行版自己的根目录,而不是你日常使用的WSL发行版的根目录,也不是Windows主机的文件系统根。docker-desktop发行版的/home目录默认是空目录,和你进入容器后看到的情况完全匹配。
挂载目标路径的正确写法
如果要挂载对应位置的文件系统,按你的需求选择对应路径格式即可:
- 挂载自己日常使用的WSL发行版的路径
所有运行中的WSL发行版的文件系统都会在/mnt/wsl/下按发行版名称映射,比如你的发行版名称是Ubuntu,要挂载它的根目录就把Source填为/mnt/wsl/Ubuntu/即可。你也可以直接在自己常用的WSL发行版内执行docker命令/发起API请求,此时dockerd会自动解析当前发行版的路径。 - 挂载Windows主机的路径
填写Windows路径格式即可,比如要挂载C盘根目录就把Source填为C:/或者/c/,dockerd会自动识别并挂载Windows对应的盘符目录。
内容的提问来源于stack exchange,提问作者goFrendiAsgard
相关产品推荐
相关产品推荐

