Docker Desktop搭配WSL2使用时PersistentVolume的实际挂载路径在哪
WSL2 环境 Docker Desktop Kubernetes hostPath 路径对应位置说明
- 你在 PersistentVolume 中配置的
hostPath.path: "/mnt/data",默认并不指向你日常使用的 WSL2 Ubuntu 20.04 发行版的文件系统,而是指向 Docker Desktop 专属运行虚拟机的内部文件系统。Docker Desktop 虽然基于 WSL2 运行,但其自带的 Kubernetes 集群默认运行在 Docker 专属的 WSL 发行版(发行版名称为docker-desktop)中,和你手动安装的 Ubuntu 20.04 是相互独立的 WSL 实例。 - 你可以在 WSL 终端执行
wsl -l -v命令验证,输出结果中除了你的 Ubuntu-20.04 实例外,还会存在docker-desktop和docker-desktop-data两个 Docker 专属的 WSL 实例,Kubernetes 所有运行资源默认都使用docker-desktop实例的文件系统。 - 如果要查看该路径内容,可以直接执行以下命令进入 Docker 专属实例访问:
wsl -d docker-desktop ls /mnt/data
如果需要提前创建目录,执行:
wsl -d docker-desktop mkdir -p /mnt/data
- 如果你希望 hostPath 直接映射到你自己使用的 Ubuntu 20.04 实例内的路径,可以修改 PV 配置:Docker Desktop 会自动将所有 WSL 实例的根目录挂载到自身的
/mnt/wsl路径下,假设你的 Ubuntu 实例名称为Ubuntu-20.04,你想映射 Ubuntu 内的/mnt/data路径,首先需要在 Ubuntu 终端中手动创建该目录:
sudo mkdir -p /mnt/data
之后将 PV 的 hostPath 配置改为:
hostPath: path: "/mnt/wsl/Ubuntu-20.04/mnt/data"
即可完成映射。
注意:hostPath 类型的 PV 仅适合本地开发测试场景使用,生产环境不要使用该类型持久化存储,存在节点亲和性、权限冲突、多节点访问异常等问题。
内容的提问来源于stack exchange,提问作者OKWeather111
相关产品推荐
相关产品推荐

