Docker for Mac HostPath PersistentVolume存储位置及Kubernetes卷本地访问咨询
问题1:Docker for Mac中HostPath类型PersistentVolume的数据存储位置
Docker for Mac本质上是在你的Mac系统上运行了一个隐藏的Linux虚拟机,Kubernetes集群的所有节点都部署在这个VM内部。所以当你使用HostPath类型的PersistentVolume时,数据其实是存储在这个VM的本地文件系统里,而不是直接放在Mac的原生文件系统中。
要访问这个VM里的HostPath数据,可以通过以下命令进入VM的shell(适用于Docker Desktop 4.x及以上版本):
docker run -it --privileged --pid=host debian nsenter -t 1 -m -u -i -n sh
进入VM后,你就可以直接导航到PV定义中指定的path路径,比如你的PV里写的是/data/my-app-storage,那在VM终端里执行cd /data/my-app-storage就能看到卷内的数据了。
问题2:能否直接在Mac本地文件系统定位HostPath卷的数据?
无法直接访问——因为HostPath指向的是Kubernetes节点(也就是Docker的内置VM)的本地路径,和Mac的原生文件系统是互相隔离的。不过你有两个实用的间接解决方案:
- 用上面提到的命令进入Docker内置VM,直接在VM的终端里查看或修改数据;
- 如果希望Mac本地能直接操作这些数据,可以调整你的HostPath配置:Docker for Mac默认把Mac的
/Users目录挂载到了VM的/Users路径下,所以如果你的PV的HostPath设置为/Users/你的用户名/本地目录路径,那你就能直接在Mac的~/本地目录路径中访问卷内的数据了。这种情况下就不用再通过Pod或VM中转,直接在本地操作即可。
内容的提问来源于stack exchange,提问作者Cory Klein
相关产品推荐
相关产品推荐

