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

如何在WSL2后端Win10 Docker Desktop的Kubernetes中挂载主机卷?

在Docker Desktop(Windows)中挂载本地目录到Kubernetes Pod的问题

问题详情

我配置了如下Kubernetes Pod的YAML文件,尝试用hostPath挂载Windows本地目录到容器:

apiVersion: v1
kind: Pod
metadata:
  ...
spec:
  containers:
    - name: php
      volumeMounts:
        - mountPath: /app/db_backups
          name: db-backups
          readOnly: true
  volumes:
    - hostPath:
        path: /mnt/c/Users/Mark/PhpstormProjects/proj/db_backups
        type: DirectoryOrCreate
      name: db-backups

执行以下命令进入容器shell后,能看到/app/db_backups目录,但里面是空的,推测卷没有关联到Windows主机的对应目录:

kubectl --context docker-desktop exec --stdin --tty deploy/app-deployment-development -cphp -nmyns -- /bin/bash

尝试改用Windows风格路径C:\Users\Mark\PhpstormProjects\proj\db_backups时,部署失败并抛出CreateContainerError错误:

Error: Error response from daemon: invalid volume specification: 'C:\Users\Mark\PhpstormProjects\proj\db_backups:/app/db_backups:ro'

显然系统不支持Windows风格路径,请问该如何解决这个挂载问题?

解决方案

1. 确认Docker Desktop的WSL2集成配置

Docker Desktop在Windows下的Kubernetes依赖WSL2后端,先检查配置:

  • 打开Docker Desktop设置,进入「Resources」→「WSL Integration」
  • 确保你正在使用的WSL发行版(比如Ubuntu)已开启集成,同时勾选「Enable integration with my default WSL distro」

2. 验证WSL2对Windows路径的访问

Windows的C:盘在WSL2中默认挂载到/mnt/c/,打开WSL终端执行以下命令,确认目标目录存在且有内容:

ls /mnt/c/Users/Mark/PhpstormProjects/proj/db_backups

如果看不到内容,检查Docker Desktop的「File Sharing」设置,确保C:盘已被添加到共享列表。

3. 调整目录权限

Windows目录挂载到WSL2后,权限可能导致容器无法读取,在WSL终端执行以下命令修复:

sudo chmod -R 755 /mnt/c/Users/Mark/PhpstormProjects/proj/db_backups

4. 改用WSL本地路径(更稳定)

如果/mnt路径挂载仍有问题,建议直接将项目放在WSL2的文件系统中(比如/home/mark/PhpstormProjects/proj/db_backups),然后修改YAML中的hostPath路径为该WSL本地路径,这样挂载的稳定性和性能都会更好。

5. 验证挂载结果

修改配置重新部署后,再次进入容器执行ls /app/db_backups,确认能看到Windows/WSL目录中的文件。

内容的提问来源于stack exchange,提问作者mpen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 04:15:37