问题背景及描述
Mac机安装docker镜像,使用了容器卷的方式挂载目录
docker volume create jenkins
docker run -d --name jenkins -p 8080:8080 -p 50000:50000 \
-v jenkins:/var/jenkins_home jenkins/jenkins:lts
因为忘记jenkins密码,想要修改users/config.xml ,但容器中未安装vim,不能直接修改。就想可以在本地配置文件中修改。 先查看容器卷的本地文件路径,运行如下命令。
docker inspect jenkins
找到本地地址如下图
可是在本地查找对应路径时,却提示没有对应路径或者文件。
直接解法
运行如下命令
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无法直接访问。
可以启动一个新容器,在新容器中访问容器卷。可使用却不