从 Mounts 配置能看出核心问题:你在 Windows 宿主命令行(如 PowerShell/CMD) 中执行 docker run 时,Source: "/home/xinference" 被 Docker 解析成了 Windows 宿主的路径(而非 WSL 的路径),导致挂载源完全错了,所以容器内看不到 WSL 中的 test.txt。
一、为什么路径会解析错误?
Docker 路径解析规则完全依赖「执行命令的环境」,这是关键:
- 如果你在 WSL 终端(如 Ubuntu-22.04 终端) 执行
docker run -v /home/xinference:/data:
Docker 会把/home/xinference解析为 当前 WSL(Ubuntu-22.04)内的目录(正确路径)。 - 但你是在 Windows 宿主命令行(如 C:\Windows\system32>) 执行的命令:
Docker 会把 Linux 风格的/home/xinference按 Windows 规则解析,实际指向C:\home\xinference(Windows 把/当作 C 盘根目录)—— 这才是容器当前挂载的「真正源路径」,和 WSL 毫无关系!
二、验证错误挂载源(Windows 宿主的 C:\home\xinference)
你可以去 Windows 宿主的 C:\ 盘根目录看看,会发现多了一个 home 文件夹,里面的 xinference 目录下,正是容器内 /data 看到的 cache、logs、model(因为容器往 /data 写数据时,实际写的是 C:\home\xinference)。
三、解决方案:用正确的路径重新挂载 WSL 目录
根据你执行 docker run 的环境,分两种正确写法:
场景 1:在 Windows 宿主命令行(PowerShell/CMD)执行
必须用 WSL 共享路径格式(\\wsl$\<分发版名称>\<WSL内路径>),明确指向 Ubuntu-22.04 的 /home/xinference:
# 1. 先停止并删除旧容器(因为挂载错了,必须重建)
docker stop xinference
docker rm xinference
# 2. 用 WSL 共享路径重新创建容器(关键是 -v 后的路径)
docker run --name xinference -d -p 9997:9997 ^
-e XINFERENCE_HOME=/data ^
-v \\wsl$\Ubuntu-22.04\home\xinference:/data ^ # 正确指向 WSL 目录
--gpus all xprobe/xinference:v1.9.0 xinference-local -H 0.0.0.0
场景 2:在 WSL 终端(Ubuntu-22.04 终端)执行
直接用 Linux 风格路径即可(此时 Docker 会解析为 WSL 内的路径):
# 1. 进入 Ubuntu-22.04 终端(先在 Windows 打开 WSL 终端)
wsl -d Ubuntu-22.04
# 2. 停止删除旧容器(若已存在)
docker stop xinference
docker rm xinference
# 3. 用 Linux 路径创建容器(直接写 /home/xinference 即可)
docker run --name xinference -d -p 9997:9997 \
-e XINFERENCE_HOME=/data \
-v /home/xinference:/data \ # 此时会解析为 WSL 内的 /home/xinference
--gpus all xprobe/xinference:v1.9.0 xinference-local -H 0.0.0.0
四、验证正确挂载
- 在 Ubuntu-22.04 终端中创建测试文件:
sudo echo "test from WSL Ubuntu-22.04" > /home/xinference/test.txt - 进入容器查看是否同步:
docker exec -it xinference /bin/bash ls /data # 此时能看到 test.txt、cache、logs、model cat /data/test.txt # 输出 "test from WSL Ubuntu-22.04",证明挂载正确
总结
核心坑点:Windows 命令行和 WSL 终端执行 docker run 时,路径解析规则完全不同。
- Windows 命令行:
/xxx→ 指向C:\xxx(宿主路径); - WSL 终端:
/xxx→ 指向 WSL 内的/xxx(正确路径)。
必须根据执行环境选择对应的挂载路径格式!

9642

被折叠的 条评论
为什么被折叠?



