问题背景及描述
Mac机安装docker镜像,使用了容器卷的方式挂载目录
1 | docker volume create jenkins |
因为忘记jenkins密码,想要修改users/config.xml ,但容器中未安装vim,不能直接修改。就想可以在本地配置文件中修改。 先查看容器卷的本地文件路径,运行如下命令。
1 | docker inspect jenkins |
找到本地地址如下:
1 | "Mounts": [ |
可是在本地查找对应路径时,却提示没有对应路径或者文件。
解决方案
运行如下命令
1 | docker run -it --privileged --pid=host debian nsenter -t 1 -m -u -n -i sh |
本地机器再查找容器卷默认路径(ls /var/lib/docker/volumes)路径可查。
原因及解法分析
为什么如此,是因为MacOS 是在本地运行xhyve 虚拟机管理的docker,容器卷是在虚拟机的文件系统中创建, 在macOS的FileSystem无法直接访问。