很多人可能都在问docker的问题,关于怎么操作一个已经启动的docker容器的文件系统,首先我发现这非常困难,因为 mnt的命名空间。
为了登录进入一个已经启动的docker容器,我们需要这么做:使用nsenter来在临时挂载点上挂载整个docker容器的文件系统。
创建一个特定目录的绑定挂载来当作卷来使用。
卸载临时挂载。
好吧,开始实践。
启动一个名为charlie的docker实例:
$ docker run --name charlie -ti ubuntu bash
我想要将目录 /home/jpetazzo/Work/DOCKER/docker to /src 挂载到我的docker容器中。
nsenter
首先,需要nsenter,通过docker-enter帮助脚本来操作。因为想要挂载文件系统到docker容器中,处于安全原因,我们的docker容器是不允许这么做的。使用nsenter,我们就可以在docker容器中执行任意的命令,而不会受到任何安全限制的干扰,直接获取docker容器的root权限,如何获取docker容器的方法 就是这样
安装nsenter,通过docker-enter安装nsenter:
$ docker run --rm -v /usr/local/bin:/target jpetazzo/nsenter
使用我们的docker文件系统
想要挂载宿主主机中的目录 (/home/jpetazzo/Work/DOCKER/docker) 在docker中。
要找到docker文件系统的目录。
首先使用readlink查看docker 目录的挂载位置。
$ readlink